Что такое IIFE (Immediately Invoked Function Expression) в JavaScript
IIFE (Immediately Invoked Function Expression) — это немедленно вызываемое функциональное выражение в JavaScript. Это функция, которая определяется и сразу же вызывается, как только интерпретатор доходит до неё.
Синтаксис
(function () {
// код внутри IIFE
})();
Или с использованием стрелочной функции:
(() => {
// код внутри IIFE
})();
Зачем использовать IIFE?
- Изолирует переменные и функции от внешней области видимости.
- Используется для создания локального скоупа, особенно до появления let и const.
- Часто применяется при модульной разработке, когда нужно скрыть внутренние детали реализации.
Пример использования
(function () {
const message = "Привет из IIFE!";
console.log(message); // "Привет из IIFE!"
})();
console.log(message); // ReferenceError: message is not defined
Переменная message
доступна только внутри IIFE
и недоступна снаружи — это позволяет избежать загрязнения глобальной области видимости.
IIFE с аргументами
(function (name) {
console.log(`Привет, ${name}!`);
})("Алиса"); // Привет, Алиса!
Когда применяется?
- Для инициализации данных один раз (например, настройка)
- Для создания приватных переменных и замыканий
- В старых проектах до ES6 для имитации модулей
Пример: счётчик на замыкании через IIFE
const counter = (function () {
let count = 0;
return function () {
count++;
console.log(count);
};
})();
counter(); // 1
counter(); // 2
Итог
IIFE — это функция, которая сразу вызывается после определения.
- Используется для изоляции кода и создания приватного пространства имён.
- Это полезный приём при написании модульного и безопасного кода.
Факт:
IIFE — один из самых простых способов организовать приватность в JavaScript без классов и модулей.