不傳入任何參數,調用add的時候將函數add到內部的list中,調用fire的時候順序觸發list中的回調函數:
function fn1(val) { console.log('fn1 says:' + val); } function fn2(val) { console.log('fn2 says ' + val); } var cbs = $.Callbacks(); cbs.add(fn1); cbs.fire('foo'); console.log('........') cbs.add(fn2); cbs.fire('bar')
結果就是按照順序疊加觸發,如下列表:
fn1 says:foo ……………………… fn1 says:bar fn2 says bar
這種就是最簡單的處理了,可以直接模擬,代碼如下:
function Callbacks() { var list = []; var self; self = { add: function(fn) { list.push(fn) }, fire: function(args) { list.forEach(function(fn) { fn(args); }) } } return self; }
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報