Содержание
IIFE (Immediately Invoked Function Expression) – один из самых популярных паттернов проектирования в JavaScript. Аббревиатура произносится как “айфи”.
Звучит сложно? Не волнуйтесь! В этой статье мы разберем, что такое IIFE, как его использовать и многое другое! После прочтения этой статьи вы получите ясное представление о IIFE.
Что такое IIFE?
IIFE расшифровывается как “Immediately Invoked Function Expression” (немедленно вызываемое функциональное выражение).
”IIFE (немедленно вызываемое функциональное выражение) - это JavaScript-функция, которая выполняется немедленно после своего определения. Это самовызывающаяся функция, которая обычно используется для создания закрытой области видимости, инкапсуляции кода и предотвращения загрязнения переменных в глобальном пространстве имен.”
Давайте разберем синтаксис:
(function Greet() {
console.log('Hello Folks');
})();
// Output: Hello Folks
Заметили разницу?
Здесь мы обернули функцию скобками, а затем вызвали ее.
Но почему?
Мы оборачиваем функцию в скобки, чтобы рассматривать ее как выражение, а не как объявление функции. И мы используем еще один набор скобок для немедленного вызова функции.
Но что произойдет, если мы не используем внешние скобки?
Давайте рассмотрим это на примере.
function Greet(){
console.log("Hello Folks");
}()
// Output: Uncaught SyntaxError: Unexpected token ')'
Это вызывает ошибку, просто потому, что в обычном синтаксисе функции мы не можем вызвать функцию напрямую. В этом случае нам нужно явно вызвать функцию.
Поэтому для использования IIFE нам нужно использовать внешние скобки.
Зачем она используется?
Существует много причин использовать IIFE. Вот некоторые из них:
- Создание изолированной области видимости:
IIFE создает новую функциональную область видимости, что помогает избежать конфликтов имен переменных и функций с другими частями кода. Переменные, определенные внутри IIFE, не доступны из внешней области видимости, что сохраняет их в частной и изолированной области.
- Предотвращение загрязнения глобальной области видимости:
Как вы знаете, переменные, объявленные в глобальной области видимости, доступны каждой функции. Иногда это приводит к конфликтам и ошибкам. Для предотвращения этого IIFE очень полезна, так как она создает свою собственную область видимости и сохраняет переменные в ней, защищая их от загрязнения глобальной области видимости.
- Одноразовое использование:
IIFE полезны для выполнения кода, который должен выполняться только один раз при инициализации приложения.
Спасибо за чтение :)
