立即函式(IIFE)

@yu19941994
@yu19941994
Published in
Nov 15, 2020

立即函式(Immediately Invoked Function Expression, IIFE)顧名思義就是立刻執行的函式。

欲了解它有多「立即」,先來看一般的「陳述式」跟「表達式」。

陳述式跟表達式

陳述式不會回傳結果,表達式會(通常會搭配符號運算子)

但如果你需要呼叫陳述式、表達式,你需要這樣…

呼叫函式

今天,如果你想要寫匿名函式,ㄏㄟˊ(?!)會出錯!!!

匿名函式

這個時候,用個括號把它刮起來,並且呼叫它,它馬上就啟動了,那麼它就成為了「立即函式」啦~~~是不是很立即!

立即函式(IIFE)

並且,立即函式的呼叫括號,可以寫在裡面,也可以寫在外面

此外,立即函式內的變數,僅存在立即函式內,不影響全域變數(似乎也可以說具有閉包的特性)

立即函式內變數不影響全域變數

當然,你想要修改全域外的變數,也是辦得到啦,如下圖所示

在立即函式內修改全域變數

*此篇文章為觀看過「JavaScript全攻略,克服 JS 的奇怪部分」之立即函式章節,所做的簡化筆記

*新手學前端,所紀錄僅為吸收網路文章後,所做的匯整筆記,有錯歡迎留言指正

--

--