2015-05-17 15 views
8

mam kod:ES6 moduł zakres

// lib.js 
var a = "a"; 
export var b = "b"; 

// main.js 
console.log(a); // "a" variable is not available in a global scope 
import {b} from "lib"; 
console.log(a); // is "a" variable available in a global scope or only in a module scope? 

mogę wykorzystać zmienną „a” w zakresie globalnym po moduł importu lub jest dostępny tylko w zakresie modułu? Będą moduły ES6 mają podobną zasadę działania jak ten trik:

// module  
exports.module1 = (function(){ var a = "a"; })(); // "a" variable is not available in a global scope 

Odpowiedz

12

mogę użyć zmiennej „a” w zakresie globalnym po moduł importu lub jest dostępny tylko w zakresie modułu?

Jest ona dostępna tylko wewnątrz modułu został uznany w

moduły ES6 mają podobną zasadę działania jak ten trik. [...]

Zasadniczo tak.


ES6 ma te rodzaje celownicze, kolejność z "góry" na "dolny":

  • zasięgu globalnym
  • zakres Moduł
  • zakres funkcji
  • zakres Blok
+0

Dziękuję bardzo. –

0

pozwala powiedzieć, że eksportujesz coś do innego modułu. przykład eksportujesz var b = 'b', ale nie eksportujesz pliku var a = 'a'. oznacza to, że możesz używać tylko var a = 'a' w , Jest on lokalny dla modułu, w którym został zadeklarowany i może być używany tylko w tym module. var a ma zasięg do modułu lib.js.