我目前正在开发一个依赖于arguments.callee.caller
. 这与 不兼容"use strict"
,因此当调用者函数以严格模式定义时会引发错误。我发现了这些错误,它们并不重要,因为重要的部分不是在严格模式下定义的。是否存在只支持严格模式的环境,因此与此库不兼容?
问问题
50 次
2 回答
1
于 2016-08-23T20:00:45.817 回答
0
任何现代 JS 环境在某些 ES6 上下文的上下文中总是有严格模式。即:
- 模块代码始终是严格模式代码。
- ClassDeclaration或ClassExpression的所有部分都是严格模式代码。
当然,如果你想成为未来的证明,这里的真正答案是不要使用。arguments.callee.caller
但是如果你想避免严格的模式限制,你可以使用命名函数直接访问Function.caller 。这是非常不鼓励的,因为它是一个非标准功能。
于 2016-08-23T17:31:33.960 回答