可能重复:
为什么arguments.callee.caller属性在JavaScript中被弃用?
在ES5严格模式(即"use strict"
)中,引用当前函数的arguments.callee
变量不再可用。
对于递归函数,使用函数自己的名称显然是明智的。然而,有时我可能希望使用arguments.callee
(即.length
、.prototype
)的属性,而不必使用当前函数的名称。
有人能解释一下(据称)通过移除它解决了什么明显的问题吗?
从这里开始。
arguments.callee实质上阻碍了像内联这样的优化函数,因为必须能够提供未内联的函数if arguments.callee被访问。