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

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

Модул претставува одредена конструкција, направена така што променливите и функциите на оваа конструкција се видливи само внатре во неа и не им пречат на никој однадвор.

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

javascript;(function() {
  // тука код на модулот
})();

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

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

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