立即(調用)函式 (後面都簡稱 IIFE,Immediately Invoked Function Expression) 是種在定義完可以馬上執行的函式表達式。函式表達式可以寫成匿名或具名,所以 IIFE 也具有相同特性。另外,也可以寫成箭頭函式,寫起來更精簡,且運行是一樣的。
IIFE 跟原本呼叫函式的寫法很像,一般呼叫函式:add()
,只是變成把 add 的內容直接寫出來用括號包住,(函式內容)()
,既然都已經呼叫它了,它當然就會 (立即) 執行囉。
匿名函式 / 具名函式 / 箭頭函式
(function () {
console.log('匿名 立即函式');
})();
(function namedIIFE() {
console.log('具名 立即函式');
})();
(() => {
console.log('箭頭 立即函式');
})();
console.log(typeof namedIIFE); // "undefined"
把 IIFE 賦予給變數只會儲存它的結果,而不是 function 本身。
var result = (function () {
var name = "Barry";
return name;
})();
result; // "Barry"