cod*_*rex 4 javascript settimeout setinterval
我想在Javascript中将对象数组传递给setTimer函数.
setTimer("foo(object_array)",1000);
Run Code Online (Sandbox Code Playgroud)
我在这段代码上收到错误.
**注意:**抱歉!在我的问题中有一些更正:是否可以在setInterval()函数中使用.
CMS*_*CMS 17
在setTimeout或setInterval函数的第一个参数上使用匿名函数而不是字符串:
// assuming that object_array is available on this scope
setInterval(function () { foo(object_array); }, 1000);
Run Code Online (Sandbox Code Playgroud)
为什么会这样:
定义内部函数时,即使它们的父函数已经终止,它也可以引用其外部封闭函数中存在的变量.
此语言功能称为闭包.
如果传递一个字符串作为这些函数的第一个参数,则代码将通过调用eval函数在内部执行 ,并且这样做不被视为一种好的做法.
Eval提供对JavaScript编译器的直接访问,并使用调用者的权限执行它传递的代码,也重复/广泛地使用eval (即你的setInterval函数是一个很好的例子)将导致性能问题.
| 归档时间: |
|
| 查看次数: |
5467 次 |
| 最近记录: |