Разъяснение JavaScript IIFE

Разъяснение JavaScript IIFE

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. Вот некоторые из них:

  1. Создание изолированной области видимости:

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

  1. Предотвращение загрязнения глобальной области видимости:

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

  1. Одноразовое использование:

IIFE полезны для выполнения кода, который должен выполняться только один раз при инициализации приложения.

Спасибо за чтение :)