Вопрос по javascript, node.js – Что такое файл node.js для window [«myvar»] = значение?
1
ответ
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
сломается, потому что он не будет разделен между подпроцессами.