Модули
Модули помогаю избежать глобального пространства, а также избежать конфликтных ситуаций с одинаковыми названиями переменных
Создание модуля через анонимную самовызывающуюся функцию
(function () { }());
Данный прием позволяет сразу запустить написанную функцию и получить локальную область видимости.
const number = 1;
(function () {
let number = 2;
console.log(number);
console.log(number + 3);
}());
console.log(number);
Создание модуля через создание объектного интерфейса
В модуль записывается переменная и в нее возвращаем методы доступные снаружи.
const user = (function () {
const privat = function () {
console.log('Приватная функция');
};
return {
sayHallo: privat
};
}());
user.sayHallo();
Ананимная самовызывающаяся функция создает объект в который записываются свойства которые потребуются “снаружи”.