2013-02-28 79 views
-1

所以我讀通過骨幹源,我看的功能 -其中是在backbone.js源代碼中實現的所有事件?

on: function(name, callback, context) { 
    if (!(eventsApi(this, 'on', name, [callback, context]) && callback)) return this; 
    this._events || (this._events = {}); 
    var list = this._events[name] || (this._events[name] = []); 
    list.push({callback: callback, context: context, ctx: context || this}); 
    return this; 
}, 

我沒有看到的「所有」事件的任何特殊情況 - 這哪裏是實施?

+0

的特殊情況是'trigger'不上' '。 'if(allEvents)triggerEvents(allEvents,arguments);' – 2013-02-28 14:31:39

回答

0

當你調用on('all' ,...)回調被推入this.events.all數組:

var list = this._events[name] || (this._events[name] = []);//-> this._events.all = [] 

然後當trigger觸發它會檢查:

var allEvents = this._events.all 
+0

那麼所有的標誌設置在哪裏?只是發佈一些我已經閱讀並試圖用來回答我自己的問題沒有幫助。 – praks5432 2013-02-28 10:31:01

+1

這回答了你的問題,你仍然感到困惑,@ praks5432? '_events.all'在'on'(這個答案的第一個代碼塊)中設置,在'trigger'中它調用回調函數(第二代碼塊)。 – 2013-02-28 14:36:44

相關問題