gpt4 book ai didi

javascript - Array.prototype 与 [] perf

转载 作者:数据小太阳 更新时间:2023-10-29 04:48:26 26 4
gpt4 key购买 nike

我还没有真正有机会研究的快速问题。在调用/应用类型的上下文中使用时,哪个性能更高:Array.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 方式性能更高,因为原型(prototype)函数可以重用并且不需要创建文字。虽然不太确定。

使用 JSPerf(使用 chrome)看起来 Array.prototype 确实稍微更高效:

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

最佳答案

这取决于运行它的浏览器。在 chrome 中,.prototype 似乎更快,firefox 显示两者之间没有区别,尽管通常比 chrome 慢。 IE9 显示 .prototype 的速度大幅提升,但它是迄今为止最慢的浏览器。

但是,这种优化非常小,以至于有人可能会争辩说,节省的时间抵消了读取代码所需的额外字节数。不过我离题了,如果这些是您遇到的最大性能问题,那么您在优化方面真的没有任何问题!

编辑:

我添加了一个额外的测试 here我使用传入函数的数组来调用 splice 函数,该函数在 IE、Chrome 和 Firefox 中显示得比两者都快。我的结论是,如果您手边已有数组,请使用它,否则使用原型(prototype)。

关于javascript - Array.prototype 与 [] perf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com