Что такое iife

IIFE (Immediately Invoked Function Expression) — это шаблон проектирования, который представляет собой функцию, немедленно вызываемую после её определения. Это позволяет создавать новую область видимости и изолировать переменные внутри функции от глобального объекта, тем самым предотвращая загрязнение глобального пространства имен.

Структура:

(function() {
  // Тело функции
})();

Или с использованием стрелочной функции:

(() => {
  // Тело функции
})();

Пример:

(function() {
  var localVar = 'Я локальная переменная';
  console.log(localVar); // Вывод: Я локальная переменная
})();

console.log(typeof localVar); // Вывод: undefined

В этом примере переменная `localVar` определена внутри него и не доступна за её пределами, что демонстрирует изоляцию переменных от глобального пространства имен.

Почему это полезно:

1. Изоляция: Переменные, объявленные внутри этого шаблона, не засоряют глобальное пространство имен и не конфликтуют с другими переменными с тем же именем.
2. Приватность: Создаёт приватную область видимости для переменных и функций, что позволяет скрыть реализацию деталей и сохранить данные и функции недоступными извне.
3. Немедленное выполнение: Код внутри него выполняется немедленно, что удобно для инициализации функциональности или создания модулей.
4. Управление глобальным объектом: Может использоваться для передачи глобального объекта (например, `window` в браузерах) в качестве параметра, что обеспечивает удобный доступ к глобальным переменным и функциям без прямого обращения к глобальному объекту.

IIFE — это полезный инструмент для обеспечения приватности, изоляции переменных и немедленного выполнения кода. Этот паттерн особенно актуален в условиях, когда необходимо избежать конфликтов имен и защитить переменные и функции от внешнего доступа.

Feb. 26, 2024, easyoffer