Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an es6 module-scope equivalent to `window`?

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

like image 257
Jarrad Avatar asked Mar 15 '23 13:03

Jarrad


1 Answers

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.

like image 82
Felix Kling Avatar answered Mar 29 '23 18:03

Felix Kling