我写了一个 forEach 实现来理解这个响应:
function myForeach(sourch, func) {
for (var i = 0, len = sourch.length; i < len; i++) {
func(sourch[i], i, arr);
}
}
和 forEach 一样,它比简单的 for 循环慢:
for (var i = 0, len = arr.length; i < len; i++) {
(function(item) {
action(item);
})(arr[i], i, arr); //exactly what foreach dose!
}
在这里,两种方式都有function setup & teardown
。为什么它这么快?