当我在Chrome开发工具中输入代码console.log(this);
,它会显示:全球范围和Node.js的
Window {stop: function, open: function, alert: function, confirm: function, prompt: function…}
,但是当我在node.js中执行相同的代码(v6.11.1)它显示:
{}
它不应该显示关于全局对象的信息吗?
(该代码仅被执行的事情,它不是一个程序的一部分。)
当我在Chrome开发工具中输入代码console.log(this);
,它会显示:全球范围和Node.js的
Window {stop: function, open: function, alert: function, confirm: function, prompt: function…}
,但是当我在node.js中执行相同的代码(v6.11.1)它显示:
{}
它不应该显示关于全局对象的信息吗?
(该代码仅被执行的事情,它不是一个程序的一部分。)
中的节点模块中的顶级代码,这相当于module.exports。这是你看到的空白物体。例如:
module.exports.a = 'test';
console.log(this); // 'test'
在浏览器中,而无需使用"use strict"
-directive,此指全局对象(窗口)。
谢谢,我现在明白了。此外这个问题是现货:https://stackoverflow.com/questions/15406062/in-what-scope-are-module-variables-stored-in-node-js – igobivo
这些都是窗口/浏览器方法。你为什么期望节点模块的全局环境看起来像这样? – Andy
我不知道这个代码会被隐式地封装在一个'模块'中。谢谢。 – igobivo