Skip to content

10. De modules ES6

Image

Met de modules ES6 kunt u JavaScript-toepassingen bouwen die zijn gestructureerd in onafhankelijke en herbruikbare modules.

10.1. Scripts [import-01, export-01]

Het script [import-01] maakt gebruik van de module [export-01]. Deze is als volgt gedefinieerd:


// standaard export van een naamloos object
export default {
  data: 2,
  do() {
    console.log(this.data);
  }
};

Opmerkingen

  • de regels [2-7] definiëren een naamloos object met de eigenschappen [data, do];
  • regel 2: de instructie [export default] exporteert dit object. Dit object kan dus worden geïmporteerd;

De module [export-01] wordt door het script [import-01] als volgt gebruikt:


''use strict';
// import van een standaard geëxporteerd object
import export01 from './export-01';
// gebruik van dit object
export01.do();
// een standaardexport kan onder elke gewenste naam worden geïmporteerd
import data from './export-01';
console.log(data.data);

Opmerkingen

  • in de regels 3 en 7 wordt het standaard geëxporteerde object van de module [export-01] onder twee verschillende namen geïmporteerd;
  • zodra een object is geïmporteerd, kan het worden gebruikt alsof het lokaal in het script was gedefinieerd;

Uitvoering


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-01.js"
2
2

10.2. scripts [import-02, export-02]

Deze scripts tonen een export van een benoemd object.

Het script [export-02] ziet er als volgt uit:


// standaardexport van een object met een naam
const data = {
  data: 2,
  do() {
    console.log(this.data);
  }
};
// export
export default data;
  • regel 9: het object [data] wordt geëxporteerd;

Of het geëxporteerde object nu een naam heeft of niet, maakt voor het importeren geen verschil. Het script [import-02] luidt als volgt:


'use strict';
// een standaard geëxporteerd object importeren
import module1 from './export-02';
// gebruik van dit object
module1.do();
// een standaardexport kan onder elke gewenste naam worden geïmporteerd
import module2 from './export-02';
console.log(module2.data);

Uitvoering


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-02.js"
2
2

10.3. scripts [import-03, export-03]

Een module kan meerdere elementen exporteren.

Het script [export-03] luidt als volgt:


// meerdere exporten
// object exporteren
const data = {
  data: 2,
  do() {
    console.log(this.data);
  }
};
// exportfunctie
export { data };
function doSomething() {
  console.log("doSomething");
}
export { doSomething };

Opmerkingen

  • regels 10 en 14: export van twee elementen. De export van een element gebeurt met de syntaxis [export {élément}];

Het script [import-03] gebruikt de module [export-03] op de volgende manier:


'use strict';
// een module importeren [export03]
import {data, doSomething} from './export-03';
// gebruik van imports
data.do();
doSomething();
// andere schrijfwijze
import * as module from './export-03';
// gebruik van de import
console.log(module.data);
module.doSomething();
  • regel 3: de [imports]-opdrachten worden uitgevoerd met de exacte namen van de geëxporteerde objecten;
  • regel 8: alle geëxporteerde objecten kunnen worden geïmporteerd in een object met de naam (hier [module]);

Uitvoering


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-03.js"
2
doSomething
{ data: 2, do: [Function: do] }
doSomething