node.js是否与浏览器中的window对象等效

IGR*_*ACH 50 javascript node.js

我的意思是node.js的对象是全局函数方法.在浏览器中像这样:

function myGlobalFunction() {
    console.log(this === window);
}
myGlobalFunction();

=> true
Run Code Online (Sandbox Code Playgroud)

Emp*_*nal 42

节点中最接近的等价物是global.我不确定它是否以所有相同的方式进行翻译,但是如果你打开一个REPL并输入this === global,它将返回true.

这是关于全局对象的讨论,虽然有些信息可能因为它已经很旧而被弃用:node.js中的'global'对象

  • 这===全局只会在REPL内部返回true。如果您实际上正在执行脚本文件,例如节点myScript.js,它将为false。看到这篇文章的解释http://stackoverflow.com/questions/25336759/global-variable-assignment-in-node-from-script-vs-command-line (2认同)

pla*_*alx 18

是的,该global变量是Node.js中的全局对象

来自文档:

global#{Object}全局名称空间对象.在浏览器中,顶级范围是全局范围.这意味着在浏览器中,如果您在全局范围内,var会定义一个全局变量.在Node中,这是不同的.顶级范围不是全球范围; Node模块内的var something将是该模块的本地内容.