這裏的參數'name'表示要綁定到對象的事件名稱(第一個參數)。如果name參數不支持多事件註冊,則函數eventsApi將返回true(Backbone的事件API僅支持字符串和對象表示格式,例如:「change click」,{change:action,click:action2})。
如果傳遞非字符串或非對象名稱參數,事件API將爲'單個事件'註冊事件處理程序。在你的情況下,你嘗試註冊一個名爲undefined的自定義事件,backbone將把它視爲單個事件處理程序註冊。
綜上所述,返回的布爾值決定事件寄存器是否需要執行'多事件註冊'。
....
on: function(name, callback, context) {
//multi-events registration will be processed if the eventsApi function call return 'false'
if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;
this._events || (this._events = {});
var events = this._events[name] || (this._events[name] = []);
events.push({callback: callback, context: context, ctx: context || this});
return this;
},
謝謝!但似乎事件註冊已經生效。 [jsfiddle](http://jsfiddle.net/5xAkM/) – Allenice
感謝您的提醒和解答已更新。你可以參考它:) – Chickenrice