You may know the global
object in Node.js:
{Object} The global namespace object.
In browsers, the top-level scope
is the global scope. That means that in browsers if you're in the
global scope var something will define a global variable. In Node this
is different. The top-level scope is not the global scope; var
something inside a Node module will be local to that module.
Now I stumbled over the root
object which seems to be documented nowhere.
Though it seems that I can use root
the same way as 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);
In the shell:
$ node test2.js
bar
When I inspect global
and root
in the shell they look the same. Try:
$ node
> global
...
> root
...
So it seems that root
is the same as global
. But why the redundancy? Why is root
not documented? Is it deprecated?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…