相关疑难解决方法(0)

不推荐使用Arguments.callee - 应该使用什么?

做的事情

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跨浏览器兼容?

javascript cross-browser

38
推荐指数
2
解决办法
2万
查看次数

在新的ECMA5 Javascript标准中的argument.callee.name替代方案

我正在努力将一些旧代码移植到'严格模式',在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()...},但我似乎无法找到如何处理上面的代码.

javascript ecmascript-5

6
推荐指数
2
解决办法
3551
查看次数

标签 统计

javascript ×2

cross-browser ×1

ecmascript-5 ×1