"Duff`s Device"是一个循环体展开技术, 它使得一次迭代中实际执行了多次迭代的操作. Jeff Greenberg被认为是将"Duffs Device"代码从原始C实现移植到JavaScript中的第一个.
代码:
var iterations = Math.floor(items.length / 8),
startAt = items.length % 8,
i = 0;
do {
switch (startAt) {
case 0:
process(items[i++]);
case 7:
process(items[i++]);
case 6:
process(items[i++]);
case 5:
process(items[i++]);
case 4:
process(items[i++]);
case 3:
process(items[i++]);
case 2:
process(items[i++]);
case 1:
process(items[i++]);
}
startAt = 0;
} while (--iterations)
网友评论