Javascript Node.js此关键字

Javascript Node.js此关键字,javascript,node.js,Javascript,Node.js,根据MDN,this关键字的行为如下所示 在全局执行上下文中(在任何函数之外),这是指 到全局对象,无论是否处于严格模式 我通过运行以下代码进行测试: 'use strict'; console.log(this === global); 结果令人困惑。当我将这些代码放入一个文件并通过执行node test.js运行它时,它返回false。但当我运行它时,它返回true 我希望这两种方式都能实现。有人能解释一下原因吗?节点中的文件是模块,它们位于自己的上下文中,以避免污染全局名称空间 在re

根据MDN,this关键字的行为如下所示

在全局执行上下文中(在任何函数之外),这是指 到全局对象,无论是否处于严格模式

我通过运行以下代码进行测试:

'use strict'; 
console.log(this === global);
结果令人困惑。当我将这些代码放入一个文件并通过执行
node test.js
运行它时,它返回false。但当我运行它时,它返回true


我希望这两种方式都能实现。有人能解释一下原因吗?

节点中的文件是模块,它们位于自己的上下文中,以避免污染全局名称空间


在repl中,您处于它自己的上下文中,这恰好是全局上下文。

这意味着,默认情况下,每个nodejs文件中的“this”不等于全局对象?@JunbangHuang否,这取决于文件是否作为模块执行。