Hack Frontend Community

Что такое 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 без классов и модулей.