Node.js 为什么我从REPL.log(这个)中得到了不同的结果

Node.js 为什么我从REPL.log(这个)中得到了不同的结果,node.js,Node.js,通过使用命令“node test.js”执行test.js,我得到了“{}”的结果。但是通过在REPL中执行相同的代码,我获得了大量的系统信息。为什么会有这种差异?是因为我的节点配置吗?不同的执行上下文 在节点中,您需要的任何文件都是一个具有自己作用域的模块,默认情况下是一个空对象(因此是{}),直到您导出某些内容为止 另一方面,repl是它自己的执行上下文,已经附加了一堆东西。您甚至可以自己设置附加到它的东西(例如方便的功能)不同的执行上下文 在节点中,您需要的任何文件都是一个具有自己作用域的

通过使用命令“node test.js”执行test.js,我得到了“{}”的结果。但是通过在REPL中执行相同的代码,我获得了大量的系统信息。为什么会有这种差异?是因为我的节点配置吗?

不同的执行上下文

在节点中,您需要的任何文件都是一个具有自己作用域的模块,默认情况下是一个空对象(因此是{}),直到您导出某些内容为止


另一方面,repl是它自己的执行上下文,已经附加了一堆东西。您甚至可以自己设置附加到它的东西(例如方便的功能)

不同的执行上下文

在节点中,您需要的任何文件都是一个具有自己作用域的模块,默认情况下是一个空对象(因此是{}),直到您导出某些内容为止

另一方面,repl是它自己的执行上下文,已经附加了一堆东西。您甚至可以自己设置附加到它的东西(例如,方便的功能)

//test.js
console.log(this);