iT邦幫忙

第 11 屆 iThome 鐵人賽

0
自我挑戰組

JavaScript核心篇系列 第 17

【JavaScript 核心】立即函式 IIFE #17

  • 分享至 

  • xImage
  •  

立即函式 IIFE

  • 定義完即可馬上執行的函式
  • 無法在函式外被再次執行
  • 大多數情況下不須給名稱

透過具名函式來執行立即函式:

  (function IIFE () {
    console.log('立即函式');
  }());

也可以把名稱拿掉

  (function () {
    console.log('立即函式');
  }());

()位置也可放在函式外

  (function () {
    console.log('立即函式');
  })();

範例:透過立即函式來限制變數的作用域

  (function(){
    var Ming = '小明';
    console.log(Ming);  // 小明
  })();

  console.log(Ming);  // Ming is not defined
  // 函式外無法取得 Ming

範例:也可以傳遞參數

  var whereMing = (function (where){
    console.log(where);  // 小明在這
    return where;  // 宣告變數來儲存回傳值
  })('小明在這');
  console.log(whereMing);

範例:將立即函式傳到另一個函式內

  var a = {};
  (function(b){
    b.person = '小明';
  })(a);
  (function(c){
    console.log(c.person);   // 小明
  })(a);

範例:透過全域物件來傳值
常用在大型框架上;確保框架可正確的掛載到全域變數上

  (function(global){
    global.person = '小明';
  })(window);
  (function(c){
    console.log(person);   // 小明
  })();

上一篇
【JavaScript 核心】什麼是函式 #16
下一篇
【JavaScript 核心】參數 #18
系列文
JavaScript核心篇19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言