Что такое корневой объект в Node.js
Вы можете узнать 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
не документировано? Это устарело?
Ответы
Ответ 1
Это точно так же, как global
.
Есть несколько недокументированных свойств, подобных этому. Они датируются ранними днями node, но остались в них, чтобы поддерживать обратную совместимость, и нет необходимости нажимать их.
Вы не должны использовать их в любом новом коде, так как они могут быть удалены в любое время.