Is there an es6 module-scope equivalent to `window

2019-01-28 23:27发布

问题:

In Javascript, we can add global variables at any point using the window object:

'use strict';
var a = 1;

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

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

Is there a similar (or non-similar!) way to do assign vars to the current module scope in ES6?

Thanks

回答1:

Module environments consist of so called declarative environment records:

A module Environment Record is a declarative Environment Record that is used to represent the outer scope of an ECMAScript Module.

In contrast to the global environment consist of an object environment record:

Each object Environment Record is associated with an object called its binding object. An object Environment Record binds the set of string identifier names that directly correspond to the property names of its binding object.


Just like with function environments (they are also declarative), there is no way to access the scope from another scope.