Tôi đã mong đợi một phiên bản gốc sẽ nhanh hơn.Hiệu suất - Array.forEach vs phiên bản được triển khai
Điều gì mang lại?
http://jsperf.com/native-vs-implmented-0
Thực hiện
function each (obj, func, context) {
var kindex,
length;
for (kindex = 0, length = obj.length; kindex < length; kindex++) {
func.call(context, obj[kindex], kindex, obj);
}
}
Test Cases
// implemented
each([0,1,2,3], function(val){
val++;
})
vs
// native
[0,1,2,3].forEach(function(val){
val++
})
Đây là cách nó được shimmed để phù hợp càng chặt chẽ càng tốt các bước cần thiết trong ECMAScript. Tôi sẽ không đi xa như vậy để nói đó là cách nó được thực hiện trong nội bộ. –
"Thuật toán này chính xác là thuật toán được chỉ định trong ECMA-262, ấn bản thứ năm" từ mozilla. – NimChimpsky
phải ... nó có thể sẽ được viết bằng ngôn ngữ biên dịch, khi được triển khai trong trình duyệt ... –