Вопрос по javascript, node.js – Что такое файл node.js для window [«myvar»] = значение?

50

Что является эквивалентом node.jswindow["myvar"] = value?

Ваш Ответ

1   ответ
76

global вместоwindow.

global["myvar"] = value
не работа !var foo = 42; console.log(global.foo); //return undefined...
@ Squint Я понимаю, не разделяя мою собственную путаницу, но объясняя, почему @Matrix смущен. Он не видитwindow а такжеglobal как эквивалент в его конкретном случае и так говорит, что они совершенно не эквивалентны.
@Dokkat:window а такжеglobal просто ссылки на глобальный объект в их соответствующих средах. Таким образом, вы используете их одинаково в каждой среде. Я обновил свой ответ, чтобы показать код явно.
@spex: работает одинаково в узле и браузере. В обоих случаях, если вы делаетеvar foo = 42 в глобальной среде вы сможете получить доступfoo как свойство глобального объекта, которыйwindow в браузере иglobal в NodeJS. Тем не менее, если вы делаетеvar foo = 42 вmoduleвы не находитесь в глобальной среде; Вы внутри функции. Независимо от этого, вопрос не об использованииvar создать переменную; речь идет о том, как создать свойство непосредственно в глобальном объекте.
Отметим, однако, что с использованием узловglobal должно быть сделано экономно, если вообще. Если есть какой-то другой способ обмена данными между модулями, используйте его вместо этого. В частности, если вам когда-либо понадобится использовать Cluster или какой-либо другой способ распределения вашего приложения между процессорами, используяglobal сломается, потому что он не будет разделен между подпроцессами.

Похожие вопросы