复制对象数组的方法更快:切片还是克隆?

时间:2012-02-08 09:38:27

标签: javascript clone slice

这与:How do I pass the value instead of the refererence of an array?

有关

我需要发送值而不是引用数组。对于这个问题,我得到了2-3个有效答案。一个是使用切片,第二个(和第三个相似)是使用克隆或制作我自己的克隆功能。

从(非常)快速测试看,切片看起来更快(在100,000个元素阵列上测试)。但我对此没有任何解释。

任何人都可以澄清是否以及为什么切片更快?

1 个答案:

答案 0 :(得分:5)

该答案中提供的clone函数非常通用(也非常差;永远,永远将可枚举属性添加到Object.prototype,并且其他问题),并在JavaScript中实现。相反,slice答案使用JavaScript引擎的内置函数,该函数可以用高度优化的机器代码编写。 (当然不是。)