Node.js中的根对象是什么

时间:2014-02-05 13:17:50

标签: javascript node.js global

您可能知道Node.js中的global object

  

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

     

在浏览器中,顶级范围   是全球范围。这意味着在浏览器中,如果你在   全局范围var something将定义一个全局变量。在Node中   是不同的。顶级范围不是全球范围; VAR   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);

在shell中:

$ node test2.js
bar

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

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

因此root似乎与global相同。但为什么冗员呢?为什么root没有记录?它被弃用了吗?

1 个答案:

答案 0 :(得分:14)

global完全相同。

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

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