什麼是立即函式
MDN 說明:立即函式的英文縮寫為 IIFE (Immediately Invoked Function Expression) 是一個定義完馬上就執行的函式。
(非常白話)
立即函式起手式
前面一篇已經知道有具名與匿名的函式,都要透過呼叫來使用其函式,具名函式如果把名稱拿掉,編譯器會提醒錯誤資訊,且無法執行。但如果想要不要呼叫立刻執行該怎麼寫?
上方為一個函式,如果不要呼叫就要讓函式立刻執行,可以這樣寫:
- 這個函式最外面加上一個小括號
- 在函式的大括號後面加上一個小括號。
1 2 3
| (function IIFE() { console.log("立即函式"); })();
|
或是
1 2 3
| (function IIFE() { console.log("立即函式"); })();
|
以上得到的結果是一樣的。
立即函式有兩個特性
1 2 3 4 5
| (function IIFE() { console.log("立即函式"); })();
console.log(IIFE);
|
立即函式使用情境
限制變數作用域
1 2 3 4 5 6
| (function () { let Tim = "提姆"; console.log(Tim); })();
console.log(Tim);
|
亦可帶參數
1 2 3
| (function (Tim) { console.log(Tim); })("Tim is here");
|
可搭配匿名函式使用
1 2 3 4 5
| let whereTim = (function (Tim) { console.log(Tim); return Tim; })("Tim is here"); console.log(whereTim);
|