1

我目前正在开发一个依赖于arguments.callee.caller. 这与 不兼容"use strict",因此当调用者函数以严格模式定义时会引发错误。我发现了这些错误,它们并不重要,因为重要的部分不是在严格模式下定义的。是否存在只支持严格模式的环境,因此与此库不兼容?

4

2 回答 2

1

是否有只支持严格模式的环境?

您可以配置 Node.js 来执行此操作,请参阅Any way to force strict mode in node?

node --use_strict
于 2016-08-23T20:00:45.817 回答
0

任何现代 JS 环境在某些 ES6 上下文的上下文中总是有严格模式。即:

  • 模块代码始终是严格模式代码。
  • ClassDeclarationClassExpression的所有部分都是严格模式代码。

当然,如果你想成为未来的证明,这里的真正答案是不要使用。arguments.callee.caller

但是如果你想避免严格的模式限制,你可以使用命名函数直接访问Function.caller 。这是非常不鼓励的,因为它是一个非标准功能。

于 2016-08-23T17:31:33.960 回答