ffl*_*ing 6 javascript ecmascript-5
我正在努力将一些旧代码移植到'严格模式',在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()...},但我似乎无法找到如何处理上面的代码.
从ECMAScript 3开始,您可以使用命名函数表达式.在此之前,函数表达式是匿名的,这是arguments.callee必要的.命名函数表达式使其不必要.所以这是推荐的替代方案.
请参阅callee的MDN文档
[1,2,3,4,5].map(function factorial (n) {
return !(n > 1) ? 1 : factorial(n-1)*n;
});
Run Code Online (Sandbox Code Playgroud)