簡體   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