2017-11-12 4 views
0

Gemäß meinem Verständnis in ES6 über definieren wir globale Variablen auf 2 Artenglobale Variablen in JavaScript

var global1 = '1'; // CASE 1 

In diesem Fall „Global1“ eingestellt ist als eine Eigenschaft des DOM Fensterobjekts, so Fenster definieren. global1 wird "1" drucken.

let global2 = '2'; // CASE 2 

In diesem Fall "global2" als Eigenschaft des DOM Window-Objekt ist nicht so gesetzt ist, wird window.global2 undefined drucken.

Meine Frage ist, wie Fall 2 im Fall von ES5 zu erreichen.

+0

im Browser. – refactor

+0

Beide definieren globale Variablen, wenn sie im obersten Bereich platziert werden. –

+0

@stealththeninja, @ Aluan Haddad, Meine Absicht ist es, global nicht als eine Eigenschaft von Fensterobjekt zu definieren, in ES5 – refactor

Antwort

0

Sie können nicht. Dies ist in ES6 möglich, da let und const Deklarationen in ihrer eigenen globalen Umgebung gespeichert sind, die nicht an das globale Objekt gebunden ist. Wenn Sie mit ES5 arbeiten, ist dieser Mechanismus nicht vorhanden.

Im Allgemeinen sind globale Variablen in beiden Ansätzen jedoch in JS-Codebasen verpönt. Idealerweise möchten Sie ein Modulsystem neben Webpack verwenden, um Ihren Code so zu bündeln, dass jede Datei ihren eigenen Geltungsbereich hat und Dinge mit expliziten Importen und Exporten verknüpft sind.