Moduli kroz zatvaranja u JavaScript-u

Gore opisan problem karakterističan je za bilo koji programski jezik. Kao rešenje primenjuju se takozvani moduli.

Modul predstavlja neku konstrukciju, učinjenu tako da promenljive i funkcije ove konstrukcije budu vidljive samo unutar nje i ne ometaju nikoga spolja.

U JavaScript-u postoji nekoliko tipova modula. Najjednostavniji moduli kroz zatvaranja kreiraju se pomoću poziva funkcije na mestu, ovako:

javascript;(function() {
  // ovde je kod modula
})();

Promenljive i funkcije, kreirane u ovakvom modulu, neće biti vidljive spolja ovog modula:

javascript;(function() {
  let str = 'promenljiva modula';
  
  function func() {
    alert('funkcija modula');
  }
})();

// Ovde promenljive i funkcije modula nisu dostupne:
alert(str);
alert(func);