2015-05-17 2 views
8

Ho il codice:ES6 modulo portata

// 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? 

Posso usare "a" variabile in un ambito globale dopo il modulo importazione o è disponibile solo in un ambito modulo? Saranno moduli ES6 avere un principio di funzionamento simile come questo trucco:

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

risposta

12

posso usare "a" variabile in un ambito globale dopo l'importazione del modulo o è disponibile solo in un ambito modulo?

è disponibile solo all'interno del modulo è stato dichiarato in

moduli Will ES6 hanno un principio di funzionamento simile come questo trucco:. [...]

Fondamentalmente sì.


ES6 ha questi tipi di ambiti, al fine di "top" a "basso":

  • portata globale
  • portata modulo
  • portata Funzione
  • Block portata
+0

Grazie mille. –

0

diciamo che stai esportando qualcosa su un altro modulo. esempio stai esportando var b = 'b', ma non stai esportando lo var a = 'a'. questo significa che puoi usare solo var a = 'a' in lib.js, è locale al modulo in cui è stato dichiarato e può essere utilizzato solo in quel modulo. var a è con ambito al modulo lib.js.