Node全局是跨模块对象吗?

时间:2018-09-08 19:02:01

标签: javascript node.js

根据节点documentation,顶级作用域不是全局作用域,并且在Node.js模块中定义的变量将位于该模块的本地。
但是,我注意到在全局范围内创建的var something被列为global的属性,在我看来,这是一种跨模块对象。 这是我在GitBash中运行的代码:

$ node
var something = "this is a test"
undefined
something
'this is a test'
console.log(global)

我真的不明白这与顶级示波器文档中所说的相符。

如果global确实是一个跨模块对象,就像Ebohlman对this old question的回答所暗示的那样,那么var something并不是它定义在其中的模块的本地。

有人可以帮助我阐明这件事吗? var something是否真的是模块范围的? global与JavaScript中的window有何不同?它的目的是什么?

1 个答案:

答案 0 :(得分:0)

您在REPL中运行了代码,这意味着您在运行node之后键入的所有代码都在同一作用域内,这与声明和运行多个模块不同,因此您无需重现错误,我们可以在这里提供帮助。