JavaScript Definiendo un modulo


Ejemplo

En ECMAScript 6, cuando se usa la sintaxis del módulo ( import / export ), cada archivo se convierte en su propio módulo con un espacio de nombres privado. Las funciones y variables de nivel superior no contaminan el espacio de nombres global. Para exponer funciones, clases y variables para que otros módulos importen, puede usar la palabra clave de 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: los archivos JavaScript de ES5 cargados a través de etiquetas <script> seguirán siendo los mismos cuando no se use import / export .

Solo los valores que se exportan explícitamente estarán disponibles fuera del módulo. Todo lo demás puede considerarse privado o inaccesible.

La importación de este módulo daría lugar (asumiendo que el bloque de código anterior está en 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