给定以下代码片段。
var name = 'John';
function foo() {
console.log(this.name);
}
foo();
当我在浏览器中运行此代码时,日志输出名称,但当我在node中运行相同的代码片段时,它输出undefined是为什么?
在浏览器中,this指的是window对象,全局变量将附加到window上。现在在node中,this将在此示例中引用全局对象,所以我的全局变量是否不像在浏览器中附加到窗口时那样附加到全局对象?
给定以下代码片段。
var name = 'John';
function foo() {
console.log(this.name);
}
foo();
global
与浏览器中的全局作用域有所不同。请参阅global
的定义以了解更多信息:var something
将局限于该模块。不应使用它,因为它引用了全局范围对象。在浏览器中,它是文档对象。如果想要访问变量,只需写出其名称即可。使用运算符 . 可以访问对象的属性。
John
。 - Ted Hopp