我正在编写一个脚本,需要在多个不同的地方克隆数组。为此,我想要模拟克隆函数的操作,如下所示:
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);
有人知道第一个代码块为什么不起作用而第二个可以吗?是否有办法在调用引用函数时避免出现错误而进行函数调用和应用函数?