为什么在谷歌浏览器中,如果我打开控制台并输入以下逻辑......
function foo() {
console.log( this.bar );
}
var bar = "global";
foo();
......我得到"global"
作为调用foo();
但是,如果我将相同的逻辑放入Visual Studio Code中名为app.js的文件中,并从终端运行node app.js
,我得到undefined
?
答案 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();