-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
您好,我发现那个indexOf有点问题,不能避免重复添加事件
function indexOf(array, item) {
if (array.indexOf) {
return array.indexOf(item);
} else {
var result = -1;
for (var i = 0, len = array.length; i < len; i++) {
if (array[i] === item) {
result = i;
break;
}
}
return result;
}
}在添加事件的时候,使用indexOf(listeners, listener) === -1判断listeners没有listener才添加,但是listener可能为object,也可能为function,所以我修改为以下
function indexOf (array, item) {
var result = -1
item = typeof item === 'object'
? item.listener
: item
for (var i = 0, len = array.length; i < len; i++) {
if (array[i].listener === item) {
result = i
break
}
}
return result
}不知道分析的对不对?
Metadata
Metadata
Assignees
Labels
No labels