bor*_*kur 16 javascript global node.js
您可能知道Node.js中的global对象:
{Object}全局命名空间对象.
在浏览器中,顶级范围是全局范围.这意味着在浏览器中,如果您在全局范围内,var会定义一个全局变量.在Node中,这是不同的.顶级范围不是全球范围; Node模块内的var something将是该模块的本地内容.
现在我偶然发现了root似乎没有记录的物体.
虽然我似乎可以使用root相同的方式global:
test1.js
foo = 'bar'; // foo is defined in the global scope (no var in front of foo)
Run Code Online (Sandbox Code Playgroud)
test2.js
require('./test1.js');
console.log(root.foo);
Run Code Online (Sandbox Code Playgroud)
在shell中:
$ node test2.js
bar
Run Code Online (Sandbox Code Playgroud)
当我检查global并root在外壳中它们看起来一样.尝试:
$ node
> global
...
> root
...
Run Code Online (Sandbox Code Playgroud)
所以它似乎root是一样的global.但为什么冗员呢?为什么root没有记录?它被弃用了吗?
Sto*_*ica 14
它完全一样global.
有一些这样的未记录的属性.它们可以从节点的早期开始,但是保留了它们以保持向后兼容性,并且没有迫切需要将它们删除.
您不应该在任何新代码中使用它们,因为它们可能在将来被删除.