【JavaScript 二部曲】立即函式 IIFE
Published in
Dec 13, 2020
何謂立即函式 (Immediately Invoked Function Expression) ?
定義 JavaScript 函式後,在其他地方即可呼叫函式執行程式動作。而函式可以不需要經過命名,且不需要透過呼叫,即可直接執行特定的程式動作,稱為" 立即函式(IIFE) "。
//具名函式: 若 function 沒有名稱,即無法執行程式。function functionA ( ) { // "functionA"為函式名稱 console.log ('test_success');}functionA( );
立即函式特點
- 立刻執行。
- 無法在程式外被再次執行。
立即函式程式範例
在具名函式外層加上小括號( ),最後面再加一個括號( )。
此時即使沒有呼叫 functionA ( ),程式仍可立即執行動作。
//以"具名函式"改為"立即函式"(function functionA ( ) { console.log ('test_success');})( );
//立即函式範例(function( ) {console.log ( 'IIFE' );})( );
立即函式的應用
- 限制變數的作用域
2. 傳遞參數
如何將立即函式內容傳遞給另一立即函式 ?
method 1
var a = { };(function(b) { b.fruit = 'apple' ;})(a);(function(c) { console.log(c.fruit);})(a)
method 2:將 a 改為 " window " ; b 改為 "global "。
(function(global) { global.fruit = 'apple' ;})(window) // window 為全域物件;(function(c) { // 此立即函式並未帶任何參數 console.log(fruit);})()