Node.js有没有类似于浏览器中window对象的等效物?

66

我的意思是,node.js是否有全局函数方法的对象。就像在浏览器中使用的那样:

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

=> true
2个回答

59

在Node.js中,最接近的等价物是global。 我不确定它是否以完全相同的方式进行翻译,但如果您打开REPL并键入this === global,它将返回true。

以下是有关全局对象的讨论,尽管其中一些信息可能已过时,因为它非常古老:'Global' object in node.js


5
只有在 REPL 中,this === global 才会返回 true。如果你正在执行像 node myScript.js 这样的脚本文件,它将返回 false。请参阅此文章以获取解释:https://dev59.com/PF8e5IYBdhLWcg3w0NGO - Chris Wininger

26

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

文档中可以得知:

global# {Object} 全局命名空间对象。在浏览器中,顶级作用域是全局作用域。这意味着如果你在全局作用域中使用 var something 定义了一个变量,那么它将成为全局变量。但在 Node 中情况不同。顶级作用域不是全局作用域;在 Node 模块内部使用 var something 定义的变量将会是局部变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接