Pet*_*Dev 7 javascript performance
我还没有真正有机会研究的快速问题.在调用/应用上下文中使用时,哪个性能更高:Array.prototypevs []?
例如:
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]);
Run Code Online (Sandbox Code Playgroud)
我的想法:我认为这种Array.prototype方式更具性能,因为原型函数可以重复使用,不需要创建文字.虽然不太确定.
使用JSPerf(使用chrome)看起来Array.prototype确实性能稍高:
这取决于运行它的浏览器。在 chrome 中,.prototype 似乎更快,firefox 显示两者之间没有区别,尽管通常比 chrome 执行得慢。IE9 显示 .prototype 的速度大幅提高,但它是迄今为止最慢的浏览器。
然而,这种优化是如此之小,以至于人们可能会认为节省的时间抵消了读取代码所需的额外字节。不过我离题了,如果这些是您遇到的最大性能问题,那么您在优化方面确实没有任何问题!
编辑:
我在这里添加了一个额外的测试,我使用传递给函数的数组来调用 splice 函数,该函数在 IE、Chrome 和 Firefox 中都显示得更快。我的结论是,如果您已经方便地使用数组,请使用它,否则使用原型。