JavaScript 中的 Arguments.callee.caller 属性弃用
允许访问调用函数的 arguments.callee.caller 属性是由于一些问题,在 JavaScript 中已弃用。
动机弃用
命名函数表达式的替代方案
在 ECMAScript 3 中,引入了命名函数表达式作为解决方案:
[1,2,3,4,5].map(function factorial(n) { return (!(n>1))? 1 : factorial(n-1)*n; });
这种方法提供了几个优点:
弃用 Arguments.callee.caller
除了arguments.callee的问题之外,Function.caller也有性能影响并使得优化困难。检查调用堆栈的常量阻碍了内联和其他优化。因此,为了消除这些问题,arguments.callee.caller 和 Function.caller 都被弃用。
尽管弃用,一些浏览器仍然支持这些属性,但不鼓励使用它们。最佳实践是使用替代方法(例如命名函数表达式)来访问和管理调用链。
以上是为什么 JavaScript 中不推荐使用“arguments.callee.caller”属性?的详细内容。更多信息请关注PHP中文网其他相关文章!