2013-05-04 86 views

回答

3

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

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

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

+0

感谢名单,以便在深克隆是指所有的值复制,并失去其原来的对象连接? – ilyo 2013-05-04 14:40:26

+0

是的 - 在深层复制中,新(结果)数组或对象将拥有自己的原始副本。通常,这也是递归的。 – Pointy 2013-05-04 14:45:18

0

理解深深浅浅的克隆的最佳方式是:

  1. 在浅克隆如果参考对象存在时,它不会 连载。

  2. 在深度克隆中,对象引用和当前都是序列化的。 而是与此有这么多的东西进入画面像 池,对象引用等