在ES5严格模式下(即`"use strict"`),不再提供指向当前函数的变量`arguments.callee`。对于递归函数,显然使用函数自己的名称是合理的。但是,有时我可能想要使用`arguments.callee`的属性(例如`.length`、`.prototype`)而不必使用当前函数的名称。是否有人能解释一下,为什么会移除它,解决了什么问题?可能是重复问题:为什么JavaScript中的arguments.callee.caller属性已被弃用?
来自这里
arguments.callee 会大大阻碍像内联函数这样的优化,因为如果访问 arguments.callee,就必须能够提供对未内联函数的引用。
return <name>
提供函数未内联版本的引用,那么这与通过 return arguments.callee
提供引用没有任何区别。对吗?如果是这样,为什么? - ELLIOTTCABLE
arguments.callee
的情况都可以用更优雅的方式解决,或者根本不应该解决。 - Ry-arguments.callee
的特定子属性的。 - Alnitak.callee
的。 - pimvdb