Модули чрез затваряния в JavaScript
Описаният по-горе проблем е характерен за всеки език за програмиране. Като решение се използват така наречените модули.
Модулът представлява някаква конструкция, направена така, че променливите и функциите на тази конструкция да са видими само вътре в нея и да не пречат на нищо отвън.
В JavaScript съществуват няколко типа модули. Най-простите модули чрез затваряния се създават с помощта на незабавно извиквана функция, ето така:
;(function() {
// тук кода на модула
})();
Променливите и функциите, създадени в такъв модул, няма да бъдат видими отвън на този модул:
;(function() {
let str = 'променлива на модула';
function func() {
alert('функция на модула');
}
})();
// Тук променливите и функциите на модула са недостъпни:
alert(str);
alert(func);