Moduly pomocí uzávěrů v JavaScriptu
Výše popsaný problém je charakteristický pro jakýkoli programovací jazyk. Jako řešení se používají takzvané moduly.
Modul představuje určitou konstrukci, vytvořenou tak, aby proměnné a funkce této konstrukce byly viditelné pouze uvnitř ní a neinterferovaly s ničím vnějším.
V JavaScriptu existuje několik typů modulů. Nejjednodušší moduly pomocí uzávěrů se vytvářejí pomocí okamžitého volání funkce, takto:
;(function() {
// zde kód modulu
})();
Proměnné a funkce vytvořené v takovém modulu nebudou viditelné zvenčí tohoto modulu:
;(function() {
let str = 'proměnná modulu';
function func() {
alert('funkce modulu');
}
})();
// Zde jsou proměnné a funkce modulu nedostupné:
alert(str);
alert(func);