全局variables作用域在Node.js控制台中无法识别
所以在浏览器(铬),如果我在js控制台运行这个代码,函数调用foo(); 打印到控制台的数字2.但是,如果我在node.js中运行它,函数调用foo()打印未定义 。 这是为什么? 节点是否以“严格模式”自动运行代码?
function foo() { console.log(this.a); } var a = 2; foo();
正如文件中所提到的那样
在一个Node.js模块中的var的东西将是本地模块。
所以,这将是不同的。
你也可以尝试:
function foo() { console.log(this.a); } global.a = 2; foo();