Node.js中的根对象是什么?

你可能知道Node.js中的global对象 :

{Object}全局命名空间对象。

在浏览器中,顶级范围是全局范围。 这意味着在浏览器中,如果你在全局范围内,var将会定义一个全局variables。 在Node中,这是不同的。 顶级范围不是全球范围; 在Node模块内的var内容将是该模块的本地内容。

现在我偶然发现了似乎没有logging的root对象。

虽然看起来我可以像global一样使用root

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); 

在shell中:

 $ node test2.js bar 

当我在shell中检查globalroot时,它们看起来是一样的。 尝试:

 $ node > global ... > root ... 

所以看起来, rootglobal 。 但为什么冗余? 为什么root没有logging? 它是否被弃用?

这跟global一模一样。

有这样的一些无证的属性。 它们从节点的早期date开始,但是保持向后兼容性,并且没有迫切需要将其移除。

你不应该在任何新的代码中使用它们,因为它们可能在将来的任何时候被删除。