[] .forEach.call的速度(...?

时间:2010-02-23 10:47:47

标签: javascript foreach call nodelist

我非常喜欢在nodeLists上使用forEach方法,如下所示:

var nodes = document.querySelectorAll(".foo");

[].forEach.call(nodes, function (item) {
    //do stuff with item
});

我很想知道,这样做的时间是否比常规方式更长? e.g。

for(var i=0;i<nodes.length;i++){
    //do stuff with nodes[i];
}

3 个答案:

答案 0 :(得分:7)

这是一个nice performance comparison。根据它Array.forEach比本地for循环慢。

答案 1 :(得分:4)

我知道它是一个老帖子,但是使用forEach方法也可以通过窃取Array原型来完成。

NodeList.prototype.forEach = Array.prototype.forEach;

答案 2 :(得分:1)

这取决于浏览器。并且不要忘记在Firefox 4上最快的while()Here's a comparison

另请注意,如果您支持不支持forEach的旧版浏览器,则需要添加implement a polyfill所需的时间。