Вы можете узнать global
объект в Node.js:
{Object} Глобальный объект пространства имен.
В браузерах область верхнего уровня является глобальной областью. Это означает, что в браузерах, если вы находитесь в глобальная область var что-то определит глобальную переменную. В Node это отличается. Область верхнего уровня не является глобальной областью; вар что-то внутри модуля Node будет локальным для этого модуля.
Теперь я наткнулся на объект root
, который, как представляется, нигде не документирован.
Хотя кажется, что я могу использовать root
так же, как global
:
test1.js
foo = 'bar'; // foo is defined in the global scope (no var in front of foo)
test2.js
require('./test1.js');
console.log(root.foo);
В оболочке:
$ node test2.js
bar
Когда я проверяю global
и root
в оболочке, они выглядят одинаково. Попробуйте:
$ node
> global
...
> root
...
Итак, кажется, что root
совпадает с global
. Но почему избыточность? Почему root
не документировано? Это устарело?