//test.js
console.log(this);
通过命令' node test.js '执行test.js,得到' {} '的结果。但是通过在REPL中执行相同的代码,我获得了大量的系统信息。为何如此区别?是因为我配置了Node? p>
答案 0 :(得分:2)
不同的执行上下文。
在节点中,您需要的任何文件都是具有自己作用域的模块,默认情况下为空对象(因此为{}),直到您导出内容为止。
另一方面,repl是它自己的执行上下文,其中已经附加了一堆东西。您甚至可以自行设置附加功能(例如便捷功能)