關於jQery中$.Callbacks()的理解

  • 2019 年 10 月 15 日
  • 筆記

$.Callbacks()主要使用了回調,而說到回調又不得不說javascript的事件循環機制了。

所以想了解回調最好先看看js運行機制。

$.Callbacks()可以理解為創建一個回調隊列

var cd = $.Callbacks()    function a (){     console.log('a');  }    function b (){     console.log('b');  }
cd.add(a,b); cd.fire();

//a
//b

上面的程式碼中我們創建了一個隊列,然後用add的方式往裡面添加兩個回調函數,最後fire讓這個回調隊列執行。

 

而在fire()中是可以添加參數的

var cd = $.Callbacks()    function a (x,y){     console.log('a',x,y);  }    function b (){     console.log('b',x,y);  }    cd.add(a,b);  cd.fire(10,20);    //a,10,20  //b,10,20

 

callbacks()中可以有三個參數,once、memory、unique、stopOnFalse,讓我們分別來看看作用

var cd = $.Callbacks("once")    function a (x,y){     console.log('a',x,y);  }    function b (){     console.log('b',x,y);  }    cd.add(a);    cd.fire(10,20);    cd.add(b);  cd.fire(10,20)    //a,10,20

once: