什么是node.js中 window["myvar"] = value 的等效写法?

75

node.js中相当于window["myvar"] = value的语法是什么?

1个回答

109

要设置全局变量,请使用global而不是window

global["myvar"] = value

1
@Dokkat:windowglobal只是它们各自环境中全局对象的引用。因此,在每个环境中,您可以以相同的方式使用它们。我更新了我的答案以明确显示代码。 - user1106925
16
请注意,如果可能的话,应该尽量少使用Node的global。如果有其他方法可以在模块之间共享数据,则应该使用它。特别是,如果您需要使用Cluster或其他方式将您的应用程序分布在处理器之间,使用global将会失效,因为它不会在子进程之间共享。 - ebohlman
4
不工作!var foo = 42; console.log(global.foo); //返回未定义... - Matrix
4
在Node.js和浏览器中,它的工作方式相同。在这两种情况下,如果你在全局环境中执行var foo = 42,你就可以将foo作为全局对象的属性进行访问,在浏览器中是window,在NodeJS中是global。然而,如果你在模块中执行var foo = 42,那么你不在全局环境中,而是在函数内部。无论如何,问题不在于使用var创建变量,而在于如何直接在全局对象上创建属性。 - user1106925
7
理解了,我不会分享自己的困惑,但会解释一下为什么 @Matrix 困惑。他在特定情况下没有将 windowglobal 视作等价的,因此他认为它们完全不等价。 - spex
显示剩余3条评论

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