T松子
2018-09-02 08:48
元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个。
当clone()方法的参数为true时,不是可以把数据一并复制过来吗?为什么最后一点元素数据内对象和数组又不回被复制了?这一点怎么感觉和深复制矛盾了。
深复制指的是开辟了一块新的内存并将数据拷贝一份新的到新的内存中
使用clone(true)将继续被克隆元素和原始元素共享, 两个元素使用的是同一个数据, 也就是说改变其中一个元素数据, 另一个元素的数据也将改变,
简单点的例子:
a.data = [1, 2, 3];
b = a.clone(true);
b.data; // [1, 2, 3]
b.data[2] = 5; // [1, 2, 5]
a.data // [1, 2, 5]
jQuery基础(二)—DOM篇
114014 学习 · 590 问题
相似问题