这只是缩短查找链吗?
var slice = Array.prototype.slice;
var splice = Array.prototype.splice;
http://backbonejs.org/docs/backbone.html
jQuery做了类似的事情:
core_push = Array.prototype.push,
core_slice = Array.prototype.slice,
答案 0 :(得分:2)
对于Backbone来说,根本没有任何意义。 slice
和splice
都只使用一次,因此var
声明会产生不必要的开销。
对于jQuery,不同的故事。对多次引用的东西的本地引用有助于缩小。因此,生产版本的代码大小会减少。
是的,这也是一个小的性能提升,但没有什么值得讨论的。
答案 1 :(得分:0)
切片,拼接和推送最高效的方法是使用C代码。由于所有浏览器都是使用Array.splice用C语言编写的,因此将在内部使用C而不是JS处理。
如果你真的需要性能,你应该尝试找到一种既不使用它的方法。问题是他们都会创建僵尸对象,这些对象将被垃圾收集器放置以便以后使用。 GC的工作越少,从长远来看,您节省的时间就越多。使用相同的数组并使用游标在数组中的不同位置进行编辑。这将使GC无法收集它。
这里有一个例子:trackFPS函数第40行的https://github.com/puppybits/BackboneJS-PerfView/blob/master/PerfView.js。如果您正在推动/切片很多并且需要考虑静态数组的性能。