TMS*_*TMS 38 javascript cross-browser
做的事情
setTimeout(function () {
...
setTimeout(arguments.callee, 100);
}, 100);
Run Code Online (Sandbox Code Playgroud)
我需要类似的东西arguments.callee.我在javascript.info上找到了arguments.callee不推荐使用的信息:
ECMA-262 不推荐使用此属性,而是使用命名函数表达式以获得更好的性能.
但是应该用什么呢?像这样的东西?
setTimeout(function myhandler() {
...
setTimeout(myhandler, 100);
}, 100);
// has a big advantage that myhandler cannot be seen here!!!
// so it doesn't spoil namespace
Run Code Online (Sandbox Code Playgroud)
BTW,是否arguments.callee跨浏览器兼容?
Ry-*_*Ry- 10
是的,理论上应该使用这个.你是对的.但是,它在某些版本的Internet Explorer中不能像往常一样工作.所以要小心.您可能需要依赖arguments.callee,或者更简单地说:
function callback() {
// ...
setTimeout(callback, 100);
}
setTimeout(callback, 100);
Run Code Online (Sandbox Code Playgroud)
哪个适用于IE.
小智 5
但是应该用什么呢?像这样的东西?
是的,你回答了自己的问题.有关更多信息,请参阅此处:
为什么在JavaScript中不推荐使用arguments.callee.caller属性?
关于为什么要做出这种改变,它有一个非常好的讨论.
| 归档时间: |
|
| 查看次数: |
21763 次 |
| 最近记录: |