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