此变量作用域在node.js中返回undefined

时间:2018-01-10 22:01:55

标签: javascript node.js

为什么在谷歌浏览器中,如果我打开控制台并输入以下逻辑......

function foo() {
    console.log( this.bar );
}

var bar = "global";
foo();

......我得到"global"作为调用foo();

的结果

但是,如果我将相同的逻辑放入Visual Studio Code中名为app.js的文件中,并从终端运行node app.js,我得到undefined

1 个答案:

答案 0 :(得分:1)

在浏览器中

function foo() {
    console.log( this.bar ); //"this" point to "window" it equals to: console.log(window.bar)
}

var bar = "global";
foo();

在Node.js

function foo() {
    console.log( this.bar );
}

bar = "global"; //implicit declaration variable will be global object's property
foo();