节点js窗口对象
在浏览器上,全局对象是window object
,在nodejs
,全局对象是global object
。
当我运行这个代码在terminal上使用nodejs
我有这个输出
console.log(this === global)
===>这个返回false
然后使用nodejs的交互模式
>this === global
true
但在浏览器上, console.log
和this === window
返回true
有什么不同?
我可以给你一个答案的一部分 :
在浏览器中,顶级范围是全局范围。 这意味着在浏览器中,如果你在全局范围内,var将会定义一个全局variables。 在Node中,这是不同的。 顶级范围不是全球范围 ; 在Node模块内的var内容将是该模块的本地内容。
https://nodejs.org/api/globals.html#globals_global
但是我不知道为什么顶级范围是交互模式下的全球范围。