在Javascript中,我知道的是,作用域使用称为声明性环境记录的数据结构进行处理,并且全局环境还有一个称为 object environment record {{3} } [1]。
但是,在Node.js中,这种行为似乎不符合上述规则。
//in node.js
var a = 1;
console.log(global.a) //prints undefined so OER didn't handle this declaration
b = 2;
console.log(global.b) //prints 2 so declarations without var makes the OER handle the variable declaration
那么,DER对象是否处理 var 和 function 声明而不是Node.js中的OER?是否在像OER这样的要求时在模块之间共享?
Ex
//module foo.js
var x = 10;
y = 20;
和另一个文件
//module bar.js
var foo = require("./foo");
console.log(x) //undefined
console.log(y) //prints 20