backbone-1.3.3源碼解析-----------Event

第一次寫,寫的不對的請指正數組

backbone.js中的Event實現了自定義事件。自定義事件就是一個對象的鍵值對,key爲事件名,value爲一個function數組。在backbone這個對象中有一個內置的對象_events保存着全部的事件安全

View Code

 全部Events的方法都是經過eventsApi調用的。this

eventsApi = function(iteratee, events, name, callback, opts){...}spa

分別傳入offApi,onceMap,triggerApi做爲eventsApi的第一個參數實現對性的off,once,trigger。其中on和listenTo則是經過internalOn方法調用的eventsApi,internalOn方法則是經過第五個參數來區分on和listenTo。internalOn方法的目的就是保護第五個參數,提升安全性。code

這裏有3個屬性this._events={eventName:[]}和this._listeningTo={obj._listenId:{obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0}}和this._listeners={obj._listenId:{obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0}},這三個爲map對象。Events這個類最終實現了對這3個對象的操做。對象

注:Events.listenTo = function(obj, name, callback){...}這個方法調用一次操做了this._events,this._listeningTo和obj._listeners三個屬性blog

相關文章
相關標籤/搜索