2

如果我使用 splice 克隆一个数组,它会给我一个浅拷贝,缺少什么?似乎我得到了多级数组,所以如果我理解正确,它不是数组的深度。

4

2 回答 2

3

在浅拷贝中,如果数组(或对象属性)是对对象的引用,则只复制引用。

var a = [{name: "Bob"}];
var b = a.slice(0);
b[0].name = "Tom";
alert(a[0].name); // "Tom"

“深”副本确保结果包含原始数据结构中所有引用对象的新副本。执行深层复制可能会出现问题,具体取决于所涉及对象的性质。

于 2013-05-04T14:12:18.190 回答
0

了解深克隆和浅克隆的最佳方法是:

  1. 在浅克隆中,如果存在引用对象,它将不会序列化。

  2. 在深度克隆中,对象引用和当前都序列化。取而代之的是,有很多东西出现在图片中,例如池,对象引用等

于 2016-07-29T13:56:26.933 回答