IIFE
Негайно виконуваний функціональний вираз (IIFE, Immediately Invoked Function Expression) — функція у JavaScript, яка виконується одразу після оголошення.
(function () {
statements
})();
Це шаблон проектування, також відомий як самовиконувана анонімна функція, який складається з двох основних частин:
- Перша - це анонімна функція, чия лексична область видимості знаходиться всередині
оператора групування
()
. Це запобігає доступу до змінних у ідіомі IIFE, а також забрудненню глобальної області видимості. - Друга частина створює негайно виконуваний функціональний вираз
()
, через який рушій JavaScript безпосередньо інтерпретуватиме функцію.
Приклади
Функція стає функціональним виразом, який негайно виконується. Змінна всередині виразу недоступна за його межами.
(function () {
var aName = "Баррі";
})();
// Змінна aName є недоступною з-поза меж області видимості
aName // викидає "Uncaught ReferenceError: aName is not defined"
Присвоєння IIFE змінній зберігає значення, яке повертає функція, а не саме визначення функції.
var result = (function () {
var name = "Баррі";
return name;
})();
// Негайно створює результат:
result; // "Баррі"