繁体   English   中英

Array.prototype vs [] perf

[英]Array.prototype vs [] perf

我还没有真正有机会研究的快速问题。 在调用/应用上下文中使用时哪个更Array.prototypeArray.prototype vs []

例如:

function test1() {
    return Array.prototype.splice.apply(arguments, [1, 2]);
}

test1([1,2,3,4,5,6,7,8,9]);

function test2() {
    return [].splice.apply(arguments, [1, 2]);
}

test1([1,2,3,4,5,6,7,8,9]);

我的想法:我认为Array.prototype方式更具性能,因为原型函数可以重用,不需要创建文字。 虽然不太确定。

使用JSPerf(带有chrome),看起来Array.prototype性能确实稍高:

http://jsperf.com/array-perf-prototype-vs-literal

这取决于运行它的浏览器。 在chrome中,似乎.prototype更快,firefox显示两者之间没有差异,虽然通常比chrome更慢。 IE9显示.prototype的速度大幅增加,但到目前为止是最慢的浏览器。

但是,这种优化是如此之小以至于人们可以争辩说节省的时间会与读取代码所需的额外字节相抵消。 我离题了,如果这些是你遇到的最大的性能问题那么你真的没有任何优化问题!

编辑:

在这里添加了一个额外的测试,我使用传递给函数的数组来调用splice函数,它在IE,Chrome和Firefox中都显示出比两者更快的速度。 我的结论是,如果你已经有阵列方便,请使用它,否则使用原型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM