
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”.