01.iii IIFE

Выражение IIFE (immediately invoked function expression, pronounced “iffy”) - это функция, описанная как function expression, которая сразу же вызывается на месте своего объявления. Такая запись формирует и сразу же исполняет локальный блок кода в ES5. Этот паттерн использовался в ES5 для создания локальной области видимости, что бы не засорять переменными (объявленными внутри скрипта) глобальную область видимости.

(function () { // open IIFE
    // initialize local variables
    var tmp = ...;  // not a global variable
}());  // close IIFE

С введением ES6-модулей и let/const необходимость в использовании этого приема исчезла. Однако многие сборщики до сих пор собирают веб-сборку в bundle, чье тело представляет собой IIFE.

Arrow-функции так же можно использовать в качестве IIFE:

(() => {
  return 123;
})();

Last updated