IIFE (Immediately Invoked Function Expression) - это функция, которая вызывается немедленно после ее определения. То есть, это функция, которая выполняется сразу же при загрузке страницы или скрипта, без явного вызова.

Синтаксис IIFE выглядит следующим образом:

(function () {
  // код функции
})();

Внешние круглые скобки нужны для того, чтобы обозначить, что это функциональное выражение, а не объявление функции. Внутренние круглые скобки вызывают функцию немедленно после ее определения.

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

Пример IIFE:

(function () {
  var message = "Hello, World!";
  console.log(message);
})();

В этом примере мы создали IIFE, которая определяет переменную “message” и выводит ее значение в консоль. При выполнении этого кода, функция вызывается немедленно и выводит сообщение “Hello, World!” в консоль.

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

var counter = (function () {
  var count = 0;
 
  return {
    increment: function () {
      count++;
    },
    decrement: function () {
      count--;
    },
    getCount: function () {
      return count;
    },
  };
})();
 
console.log(counter.getCount()); // Выводит 0
counter.increment();
console.log(counter.getCount()); // Выводит 1
counter.decrement();
console.log(counter.getCount()); // Выводит 0

В этом примере мы создали IIFE, которая возвращает объект с тремя методами: increment(), decrement() и getCount(). Методы increment() и decrement() увеличивают и уменьшают переменную “count”, а метод getCount() возвращает текущее значение “count”. После определения IIFE мы сохраняем объект в переменной “counter” и можем использовать его методы для работы с переменной “count”.


Назад