是否有一个等同于`window`的es6模块范围?

时间:2015-10-06 03:32:21

标签: javascript scope ecmascript-6

在Javascript中,我们可以使用window对象随时添加全局变量:



'use strict';
var a = 1;

function test() {
  window.b = 2;
}

test();
console.log(a); // a
console.log(b); // b




是否有类似的(或非类似的!)方法将变量分配给ES6中的当前模块范围?

由于

1 个答案:

答案 0 :(得分:7)

Module environments由所谓的声明性环境记录组成:

  

模块Environment Record是一个声明性Environment Record,用于表示ECMAScript模块的外部范围。

与全球环境相比, object environment record包含:

  

每个对象的环境记录都与一个名为绑定对象的对象相关联。对象Environment Record绑定直接对应于其绑定对象的属性名称的字符串标识符名称集。

就像功能环境(它们也是声明性的)一样,无法从另一个范围访问范围。