立即函式 IIFE 是什麼?優缺點有哪些?| JavaScript

閱讀時間約 2 分鐘

立即函式 IIFE 介紹

立即(調用)函式 (後面都簡稱 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"


為什麼要用 IIFE?IIFE 有什麼優點?

  • 作用域封裝:創建一個獨立的作用域,用來避免變數命名衝突並確保變數不會洩漏汙染全局作用域,在外層無法使用 IIFE 中宣告的變數。
  • 立即執行:會馬上執行,這對於需要立即初始化的程式碼非常有用,不需要等待任何事件或條件。
  • 模組化:將不同的功能分組,每個組有各自的變數和函式,在個別的獨立空間,不會互相影響,分開來也方便維護和管理。


IIFE 有什麼缺點?

  • 閱讀和理解相較困難。
  • debug 較困難,錯誤訊息可能沒辦法準確定位哪段程式碼出錯,尤其當你立即函式塞了一堆內容時會更難處理。


資料來源

主要放程式學習筆記,分享 Creative Coding 相關內容、作品
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
CSS 樣式採用規則:先看權重,再看誰後
* 避免命名衝突 * 避免非預期行為 * 避免非預期依賴
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
CSS 樣式採用規則:先看權重,再看誰後
* 避免命名衝突 * 避免非預期行為 * 避免非預期依賴
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
#1.價值階梯 使用此提示: “像價值階梯製造者一樣,成為一名專家顧問,幫助個體企業家為他們的企業策劃最佳的產品套件。 幫助我為我的企業設計一個潛在的價值階梯,並對每個階段進行詳細描述。這將指導我的產品發佈策略。
🎯 追求職業進階?踏上專業之路?我們的短期課程絕對是你的首選!🎓 📚 抖音短視頻課程,讓你從零基礎到專業級!快節奏、輕鬆學習,一分鐘了解你所需! 🌟 課程亮點: ✅ 由資深導師執教,專業實力強大! ✅ 知識點幹貨滿滿,絕不浪費一秒! ✅ 靈活學習,隨時隨地掌握技能! ✅ 學習成果即時見證
Thumbnail
秦良玉,字貞素,四川忠州人,明朝末年著名女將。其夫馬千乘是漢代伏波將軍馬援後人,世襲石砫宣慰使。馬千乘被害後,秦良玉代領夫職。
Thumbnail
梁紅玉,原籍安徽池州,生於江蘇淮安,是宋朝著名的抗金女英雄。
Thumbnail
歷史上有很多位平陽公主,其中最有名的就是漢武帝的姐姐、名將衛青的妻子。但說到最驍勇善戰的,則是唐高祖李淵的女兒,唐太宗李世民的親姐姐——平陽昭公主。
Thumbnail
中國數千年的歷史中,女子地位卑下,似乎天生就應當相夫教子,操持家務,但是總有個別的女中豪傑,成為了勇猛戰將,巾幗不讓鬚眉。
素續緣把最後一份病歷交回櫃檯時,抬頭瞄了一眼牆上的時鐘,現在已經是淩晨三點鐘了。 他無奈的搖搖頭,拿下掛在脖子上的聽診器,疲累的用右手按摩了一下脖子。 他剛從國外留學回來,本想說先在父親的醫院工作幾年,累積了較多經驗之後,再自己出去開業,可是他萬萬沒有想到,在急診室工作會這麼累。
Thumbnail
文案力即是您品牌的文化資產力 當代行銷路術中勢在必行的王道 在紅海市場的競爭中最好的制勝之法 品牌經營的市場「卡位」戰您準備好了嗎?
Thumbnail
每個人在漫漫職涯中,或多或少都有過被領導或領導人的時候。而我們的領導風格,往往取決於我們先前學習的正確或錯誤範例,還有我們的核心價值觀。 以下五個指標,可以幫助判斷出自己或他人是否是個好領導者...
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
#1.價值階梯 使用此提示: “像價值階梯製造者一樣,成為一名專家顧問,幫助個體企業家為他們的企業策劃最佳的產品套件。 幫助我為我的企業設計一個潛在的價值階梯,並對每個階段進行詳細描述。這將指導我的產品發佈策略。
🎯 追求職業進階?踏上專業之路?我們的短期課程絕對是你的首選!🎓 📚 抖音短視頻課程,讓你從零基礎到專業級!快節奏、輕鬆學習,一分鐘了解你所需! 🌟 課程亮點: ✅ 由資深導師執教,專業實力強大! ✅ 知識點幹貨滿滿,絕不浪費一秒! ✅ 靈活學習,隨時隨地掌握技能! ✅ 學習成果即時見證
Thumbnail
秦良玉,字貞素,四川忠州人,明朝末年著名女將。其夫馬千乘是漢代伏波將軍馬援後人,世襲石砫宣慰使。馬千乘被害後,秦良玉代領夫職。
Thumbnail
梁紅玉,原籍安徽池州,生於江蘇淮安,是宋朝著名的抗金女英雄。
Thumbnail
歷史上有很多位平陽公主,其中最有名的就是漢武帝的姐姐、名將衛青的妻子。但說到最驍勇善戰的,則是唐高祖李淵的女兒,唐太宗李世民的親姐姐——平陽昭公主。
Thumbnail
中國數千年的歷史中,女子地位卑下,似乎天生就應當相夫教子,操持家務,但是總有個別的女中豪傑,成為了勇猛戰將,巾幗不讓鬚眉。
素續緣把最後一份病歷交回櫃檯時,抬頭瞄了一眼牆上的時鐘,現在已經是淩晨三點鐘了。 他無奈的搖搖頭,拿下掛在脖子上的聽診器,疲累的用右手按摩了一下脖子。 他剛從國外留學回來,本想說先在父親的醫院工作幾年,累積了較多經驗之後,再自己出去開業,可是他萬萬沒有想到,在急診室工作會這麼累。
Thumbnail
文案力即是您品牌的文化資產力 當代行銷路術中勢在必行的王道 在紅海市場的競爭中最好的制勝之法 品牌經營的市場「卡位」戰您準備好了嗎?
Thumbnail
每個人在漫漫職涯中,或多或少都有過被領導或領導人的時候。而我們的領導風格,往往取決於我們先前學習的正確或錯誤範例,還有我們的核心價值觀。 以下五個指標,可以幫助判斷出自己或他人是否是個好領導者...