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:

javascript;(function() {
  // zde kód modulu
})();

Proměnné a funkce vytvořené v takovém modulu nebudou viditelné zvenčí tohoto modulu:

javascript;(function() {
  let str = 'proměnná modulu';
  
  function func() {
    alert('funkce modulu');
  }
})();

// Zde jsou proměnné a funkce modulu nedostupné:
alert(str);
alert(func);