一段代码如下: 来源
function emitOne(handler, isFn, self, arg1) {
if (isFn)
handler.call(self, arg1);
else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
listeners[i].call(self, arg1);
}
}
问题
在循环执行listener时候为啥要使用 arrayClone? 不直接使用handler[i].call(self, args1)呢?