我正在编写一个脚本,我需要在许多不同的地方克隆数组.出于这个原因,我想执行以下操作来模拟克隆函数:
var clone = [].slice.call;
var arr1 = [1,2,3,4,5,6,7,8,9,10];
var arr2 = clone(arr1, 0);
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的代码导致: 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);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么第一个块不起作用而第二个块不起作用?有没有办法在调用引用函数时引用函数调用和应用函数而不抛出错误?