问题是您正在从模块运行此代码,其中
var y = global;实际上是
y在 模块作用域 而不是全局作用域中定义。
在浏览器中,顶级范围是全局范围。这意味着在浏览器中,如果您位于全局作用域var中,则将定义一个全局变量。在Node中,这是不同的。顶级范围不是全局范围;var
Node模块内部的某些内容对于该模块而言是本地的。
http://nodejs.org/api/globals.html#globals_global
因此,有两种方法可以使它在Node中起作用:
- 在节点REPL中按原样运行
- 在一个模块中运行它,但
var y = global;
仅替换为y = global;



