让我们来看看这个非常基本的program.js:
console.log(this);
这是输出:
$ nodejs program.js
{}
现在,如果我在repl控制台中执行相同操作:
$ nodejs
> console.log(this)
我在最后看到了未定义的事物记录。
为什么我们得不到相同的结果?
由于
答案 0 :(得分:1)
您遇到两种不同的行为,因为您基本上是在两种不同的环境中执行代码。
在program.js中,this answer适用。您位于node.js模块中,因此this
与module.exports
相同。
在node.js repl中,this answer适用。您不在node.js模块中;你在使用全局上下文的repl中。 this
与global
相同。如果您在浏览器中执行相同的代码,则会引用window
对象而不是global
。