章節連結
IIFE (Immediate Invoked Function Expression) 是 JavaScript 中的眾多套件、框架很常採用的型式之一。其特性可以使程式碼在 execution stack 上立刻執行,進而避免了與本機端發生如變數命名衝突的可能。
課程對應章節
Course 44 ~ Course 45 (全部一共有 85 Courses)
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。課程連結網址:http://tinyurl.com/w7vrql6
內容
1. JavaScript 中的函式,若你在{}的最後加上(),那麼在執行編譯時,就會 Invoke 裡頭的變數,而不用另外呼叫,達到立刻啟用的目的。
2. 單獨寫匿名函式的話,會導致編譯錯誤。因此,在 function 的前後加上(),除了可以避免編譯錯誤外,裡頭的function會被認為是 IIFE,會立刻在 execution stack 執行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/*Example*/ /*1. IIFE 表達式 */ var greeting = function(name) { return 'Hello ' + name; }('John') console.log(greeting) // Hello John /*2. IIFE 啟用*/ var firstname = 'John'; (function(name) { var greeting = 'Inside IIFE: Hello'; console.log(greeting + ' ' + name); }(firstname)) /*3. IIFE,但不啟用*/ (function(name) { var greeting = 'Inside IIFE: Hello'; console.log(greeting + ' ' + name); }) |