【发布时间】:2011-10-13 16:48:34
【问题描述】:
我正在编写一个脚本,我需要在其中克隆许多不同位置的数组。出于这个原因,我想执行以下操作来模拟克隆功能:
var clone = [].slice.call;
var arr1 = [1,2,3,4,5,6,7,8,9,10];
var arr2 = clone(arr1, 0);
不幸的是,上面的代码导致:TypeError: object is not a function。我意识到有很多功能可以进行深度克隆和浅拷贝,但我只想使用内置方法。有趣的是,以下方法确实有效:
var clone = [].slice;
var arr1 = [1,2,3,4,5,6,7,8,9,10];
var arr2 = clone.call(arr1, 0);
有谁知道为什么第一个块不起作用而第二个块起作用?有什么方法可以在调用被引用函数时引用函数调用和应用函数而不抛出错误?
【问题讨论】:
标签: javascript arrays slice