window["myvar"] = value 的 node.js 等价物是什么?

IT技术 javascript node.js
2021-03-06 05:46:21

node.js 相当于window["myvar"] = value什么?

1个回答

要设置全局变量,请使用global代替window

global["myvar"] = value
@spex:它在节点和浏览器中的工作方式相同。在这两种情况下,如果您var foo = 42在全局环境中进行操作,您将能够foo作为全局对象的属性进行访问,该对象window位于浏览器和globalNodeJS 中。但是,如果您var foo = 42module 中这样做,则您不在全局环境中;你在一个函数里面。无论如何,问题不在于var用于创建变量;它是关于如何直接在全局对象上创建属性。
2021-04-22 05:46:21
@Dokkat:window并且global只是对各自环境中全局对象的引用。因此,您可以在每个环境中以相同的方式使用它们。我更新了我的答案以明确显示代码。
2021-04-26 05:46:21
@squint 我理解,不是分享我自己的困惑,而是解释为什么 @Matrix 感到困惑。在他的具体情况下,他没有看到windowglobal等同,所以说它们完全不等同。
2021-05-11 05:46:21
但是请注意,global如果有的话,应该谨慎地使用 Node 如果有其他方法可以在module之间共享数据,请改用它。特别是,如果您发现自己需要使用 Cluster 或其他某种方式在处理器之间分发您的应用程序,则使用global会崩溃,因为它不会在子进程之间共享。
2021-05-13 05:46:21
不行 ! var foo = 42; console.log(global.foo); //return undefined...
2021-05-18 05:46:21