IIFE (Immediately Invoked Function Expression) — це вираз, що одночасно оголошує функцію в JavaScript та здійснює її виклик. Позаяк подальший виклик безіменної функції, посилання на яку відсутнє, неможливий, головним призначенням такого виразу є створення окремої області видимості, щоб уникнути засмічення зовнішньої (зазвичай, глобальної).

Приклади

В наведеному прикладі безіменна функція одним виразом створюється і викликається:

var x = 5;

(function() {
  var x = 9;
  x++;
  console.log(x);  // виводить 10
})();

console.log(x);  // виводить 5

Слід завважити, що до таких функцій можна також передавати аргументи і отримувати повернуті з них значення:

var httpsLinksCount = (function counter($) {
  var count = 0;
  $('a').each(function() {
    var value = $(this).attr('href');
    if (value && value.indexOf('https://') === 0) {
      count++;
    }
  });
  return count;
})(jQuery);

Дізнатись більше

Загальні відомості

  • IIFE у Вікіпедії (англійською)

Мітки документа й учасники

Мітки: 
 Зробили внесок у цю сторінку: asmforce, matrixb0ss
 Востаннє оновлена: asmforce,