在下面来自主干的片段中,这一行
(ev = events[i]).callback.call(ev.ctx);
不清楚。我想假设ev = events[i]
之前解释过ev.ctx
,因为该变量似乎没有其他目的,除了减少数组索引。
假设这是正确的,这样做是因为数组索引成本高吗?我知道在嵌入式工程中,当您使用有限的资源时,数组索引的成本很高。但我认为这在 JavaScript 中不是一个问题。
主干片段
triggerEvents = function(events, args) {
var ev,
i = -1,
l = events.length;
switch (args.length) {
case 0:
while (++i < l) {
(ev = events[i]).callback.call(ev.ctx);
}
return;
case 1:
while (++i < l) {
(ev = events[i]).callback.call(ev.ctx, args[0]);
}
return;
case 2:
while (++i < l) {
(ev = events[i]).callback.call(ev.ctx, args[0], args[1]);
}
return;
case 3:
while (++i < l) {
(ev = events[i]).callback.call(ev.ctx, args[0], args[1], args[2]);
}
return;
default:
while (++i < l) {
(ev = events[i]).callback.apply(ev.ctx, args);
}
}
};