做的事情
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跨浏览器兼容?
我正在努力将一些旧代码移植到'严格模式',在ECMA5标准中,argument.callee和类似的argument.caller等的替代方法是什么?
添加信息:我没有说明为什么我需要argument.caller/callee.
我正在移植的代码正在使用
assert.ok(elemNode, arguments.callee.name + ": Entity - " + entityId + " has been found");
Run Code Online (Sandbox Code Playgroud)
如果它是简单的递归我可以使用函数name(){... function()...},但我似乎无法找到如何处理上面的代码.