IIFE

Негайно виконуваний функціональний вираз (IIFE, Immediately Invoked Function Expression) — функція у JavaScript, яка виконується одразу після оголошення. 

(function () {
    statements
})();

Це шаблон проектування, також відомий як самовиконувана анонімна функція, який складається з двох основних частин:

  1. Перша - це анонімна функція, чия лексична область видимості знаходиться всередині оператора групування (). Це запобігає доступу до змінних у ідіомі IIFE, а також забрудненню глобальної області видимості.
  2. Друга частина створює негайно виконуваний функціональний вираз (), через який рушій JavaScript безпосередньо інтерпретуватиме функцію.

Приклади

Функція стає функціональним виразом, який негайно виконується. Змінна всередині виразу недоступна за його межами.

(function () {
    var aName = "Баррі";
})();
// Змінна aName є недоступною з-поза меж області видимості
aName // викидає "Uncaught ReferenceError: aName is not defined"

Присвоєння IIFE змінній зберігає значення, яке повертає функція, а не саме визначення функції.

var result = (function () {
    var name = "Баррі"; 
    return name; 
})(); 
// Негайно створює результат: 
result; // "Баррі"