关于clone复制问题

来源:5-1 DOM拷贝clone()

T松子

2018-09-02 08:48

  • 元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个。

    当clone()方法的参数为true时,不是可以把数据一并复制过来吗?为什么最后一点元素数据内对象和数组又不回被复制了?这一点怎么感觉和深复制矛盾了。


写回答 关注

1回答

  • Teaocat
    2018-09-03 11:26:45
    已采纳

    深复制指的是开辟了一块新的内存并将数据拷贝一份新的到新的内存中

    使用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]

    qq_Sak...

    请教一下,既然已经设置了true,那就说明是深克隆(根据教程的意思大概是这样?),那为什么b还会和a享用同一个数据啊...?希望大佬解答,多谢!

    2019-04-08 19:44:40

    共 2 条回复 >

jQuery基础(二)—DOM篇

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

114014 学习 · 590 问题

查看课程

相似问题