根据MDN,this
关键字的行为如下。
在全局执行上下文中(在任何函数之外),这指的是 对于全局对象,无论是否处于严格模式。
我通过运行以下代码来测试它:
'use strict';
console.log(this === global);
结果令人困惑。当我将这些代码放入文件并通过node test.js
运行它时,它返回false。但是当我在repl.it中运行它时,它返回true。
我希望两种方式都能归结为真。任何人都可以解释原因吗?
答案 0 :(得分:1)
节点中的文件是模块,并且位于各自的上下文中,以避免污染全局命名空间。
在repl中,你处于自己的上下文中,恰好是全局上下文。