对于做类似的事情
setTimeout(function () { ... setTimeout(arguments.callee, 100); }, 100);
我需要类似的东西arguments.callee。我在javascript.info中发现了arguments.callee已弃用的信息:
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
顺便说一句,arguments.callee跨浏览器兼容吗?
是的,理论上 应该 使用。你是对的。但是,它不能像以往一样在某些版本的Internet Explorer中工作。所以要小心 您可能需要依靠arguments.callee,或者更简单地说:
function callback() { // ... setTimeout(callback, 100); } setTimeout(callback, 100);
在IE上有效。