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中检查global
和root
时,它们看起来是一样的。 尝试:
$ node > global ... > root ...
所以看起来, root
和global
。 但为什么冗余? 为什么root
没有logging? 它是否被弃用?
这跟global
一模一样。
有这样的一些无证的属性。 它们从节点的早期date开始,但是保持向后兼容性,并且没有迫切需要将其移除。
你不应该在任何新的代码中使用它们,因为它们可能在将来的任何时候被删除。