这与:How do I pass the value instead of the refererence of an array?
有关我需要发送值而不是引用数组。对于这个问题,我得到了2-3个有效答案。一个是使用切片,第二个(和第三个相似)是使用克隆或制作我自己的克隆功能。
从(非常)快速测试看,切片看起来更快(在100,000个元素阵列上测试)。但我对此没有任何解释。
任何人都可以澄清是否以及为什么切片更快?
答案 0 :(得分:5)
该答案中提供的clone
函数非常通用(也非常差;永远,永远将可枚举属性添加到Object.prototype
,并且其他问题),并在JavaScript中实现。相反,slice
答案使用JavaScript引擎的内置函数,该函数可以用高度优化的机器代码编写。 (当然不是。)