Moduler med stängningar i JavaScript
Problemet som beskrivs ovan är karakteristiskt för alla programmeringsspråk. Som en lösning används så kallade moduler.
En modul är en konstruktion gjord på ett sådant sätt att variabler och funktioner inuti den endast är synliga inom den och inte stör någon utanför.
I JavaScript finns det flera typer av moduler. De enklaste modulerna med stängningar skapas med hjälp av omedelbart funktionsanrop, så här:
;(function() {
// kod för modulen här
})();
Variabler och funktioner som skapas i en sådan modul kommer inte att vara synliga utanför denna modul:
;(function() {
let str = 'modulens variabel';
function func() {
alert('modulens funktion');
}
})();
// Här är variablerna och funktionerna i modulen inte tillgängliga:
alert(str);
alert(func);