IIFE (Immediately Invoked Function Expression) — это функция, которая выполняется сразу же после своего описания. Наиболее часто используется для создания областей видимости (внутри которых все переменные и объявления функций являются вложенными в эту область видимости).
IIFE может быть написана с вызывающими функцию скобками (()
) внутри оборачивающих выражение скобок:
(function foo () {
// [body]
}());
Или с вызывающими скобками снаружи:
(function foo () {
// [body]
})();
В примерах выше обе IIFE-функции имеют имя (foo
), но также довольно распространено создание анонимных IIFE (не имеющих имени функции).