JavaScript Definire un modulo


Esempio

In ECMAScript 6, quando si utilizza la sintassi del modulo ( import / export ), ogni file diventa il proprio modulo con uno spazio dei nomi privato. Le funzioni e le variabili di livello superiore non inquinano lo spazio dei nomi globale. Per esporre funzioni, classi e variabili per altri moduli da importare, è possibile utilizzare la parola chiave export .

// not exported
function somethingPrivate() {
    console.log('TOP SECRET')
}


export const PI = 3.14;

export function doSomething() {
    console.log('Hello from a module!')
}

function doSomethingElse(){ 
    console.log("Something else")
}

export {doSomethingElse}

export class MyClass {
    test() {}
}

Nota: i file JavaScript ES5 caricati tramite i tag <script> rimarranno gli stessi quando non si utilizza l' import / export .

Solo i valori che vengono esportati in modo esplicito saranno disponibili al di fuori del modulo. Tutto il resto può essere considerato privato o inaccessibile.

L'importazione di questo modulo produrrebbe (assumendo che il precedente blocco di codice sia in my-module.js ):

import * as myModule from './my-module.js';

myModule.PI;                 // 3.14
myModule.doSomething();      // 'Hello from a module!'
myModule.doSomethingElse();  // 'Something else'
new myModule.MyClass();      // an instance of MyClass
myModule.somethingPrivate(); // This would fail since somethingPrivate was not exported