节点js中的全局环境行为

时间:2019-10-02 11:23:46

标签: javascript node.js scope

在Javascript中,我知道的是,作用域使用称为声明性环境记录的数据结构进行处理,并且全局环境还有一个称为 object environment record {{3} } [1]

  • 对象环境记录处理 var 功能声明
  • 声明性环境记录处理 let const class 声明

但是,在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

0 个答案:

没有答案