Een module in JavaScript is een herbruikbare reeks functies die je kunt exporteren naar andere scripts. Deze functies blijven privé voor de module tenzij ze expliciet worden geëxporteerd.
Een module wordt gedefinieerd in een afzonderlijk JavaScript-bestand. Elke module is een stuk onafhankelijke code die de functionaliteit van je applicatie regelt. Door middel van modules kan je code georganiseerder en onderhoudbaarder worden.
Stel je voor dat je een module hebt gecreëerd met de naam `greet.js` met een functie `sayHello`:
```
function sayHello() {
console.log(‘Hello’);
}
```
Je kunt de `sayHello` functie exporteren met de `export` sleutelwoord:
```
export function sayHello() {
console.log(‘Hello’);
}
```
Nu de functie is geëxporteerd, kan je hem importeren in een andere module met het `import` sleutelwoord:
```
import { sayHello } from ‘./greet.js’;
sayHello(); // Outputs: ‘Hello‘
```
Als je alle geëxporteerde functies in een module wilt importeren, kun je de ster (\*) syntax gebruiken:
```
import * as greeter from ‘./greet.js’;
greeter.sayHello(); // Outputs: ‘Hello‘
```
Bovendien kan je, als je wilt, een default export hebben per module, dit komt veel voor bij modules die een component of een bibliotheek representeren:
```
// myComponent.js
export default function () {
console.log(“I’m the main feature of this module”);
}
// main.js
import myUniqueComponent from ‘./myComponent’;
myUniqueComponent(); // Outputs: “I’m the main feature of this module“
```
Hier wordt de default export van `myComponent.js` geïmporteerd onder de lokale naam `myUniqueComponent`.
Let erop dat je je JavaScript-bestanden laadt in een omgeving die ES6-modules ondersteunt. De support op oudere browsers is niet gewaarborgd.