Home » Nodejs » What is the root object in Node.js

What is the root object in Node.js

Posted by: admin November 30, 2017 Leave a comment


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:


foo = 'bar'; // foo is defined in the global scope (no var in front of foo)



In the shell:

$ node test2.js

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?


It is exactly the same as global.

There are a few undocumented properties like this. They date from early days of node but were left in to maintain backwards-compatibility and there is no pressing need to remove them.

You shouldn’t use them in any new code, as they could be removed at any future time.