Array.prototype.slice()方法documentation说
slice()方法将数组的一部分的浅表副本返回到新的数组对象中。
如果是这种情况,为什么修改Array.prototype.slice()返回的数组不会改变原始值。
> a = [1, 2, 3]
[ 1, 2, 3 ]
> b = a.slice(0)
[ 1, 2, 3 ]
> b[0] = 4
4
> b
[ 4, 2, 3 ]
> a // the expected output should be the same as output of b if b is shallowcopy of a.
[ 1, 2, 3 ]
尝试修改数组 a 时,可能会发生写入时的复制。如果是这样,说 Array.prototype.slice()确实返回浅拷贝在技术上是正确的。
答案 0 :(得分:0)
a.slice的结果是一个新数组,它不是指向初始变量的指针。