这里的参数'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