从概念上讲,eventsApi()
做什么?它是Backbone私有的,但用于 4 个公共事件方法 - on()
、once()
、off()
和trigger()
.
在每一个中,如果它返回一个非真实值,则调用它的方法将“提前”退出。
它做的一件事是确定调用方法的第二部分是否会执行。如果name
不是真实的或不是复杂类型(对象或空格分隔的字符串),它将返回一个 true 允许该方法的第二部分运行。
从概念上讲,该功能的主要目的是什么eventsApi
,因为我试图描述它在功能/逻辑上的作用?
事件API
var eventsApi = function(obj, action, name, rest) {
if (!name) return true;
if (typeof name === 'object') {
for (var key in name) {
obj[action].apply(obj, [key, name[key]].concat(rest));
}
} else if (eventSplitter.test(name)) {
var names = name.split(eventSplitter);
for (var i = 0, l = names.length; i < l; i++) {
obj[action].apply(obj, [names[i]].concat(rest));
}
} else {
return true;
}
};