Модули преко затварања у JavaScript

Горе описани проблем карактеристичан је за сваки програмски језик. Као решење користе се такозвани модули.

Модул представља одређену конструкцију, направљену тако да променљиве и функције ове конструкције буду видљиве само унутар њe и не ометају остатак кода изван.

У JavaScript постоји неколико типова модула. Најједноставнији модули преко затварања стварају се коришћењем функције одмахне извршења, овако:

javascript;(function() {
  // овде је код модула
})();

Променљиве и функције, креиране у таквом модулу, неће бити видљиве изван тог модула:

javascript;(function() {
  let str = 'променљива модула';
  
  function func() {
    alert('функција модула');
  }
})();

// Овде променљиве и функције модула нису доступне:
alert(str);
alert(func);