深拷贝

作者: 再见地平线_e930 | 来源:发表于2020-07-11 13:55 被阅读0次

    ?深拷贝和浅拷贝的区别 ?

    1.浅拷贝:只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存(只复制引用,而未复制真正的值,改变一个另一个也会被变);

    2.深拷贝:复制并创建一个一摸一样的对象,不共享内存,修改新对象,旧对象保持不变。

    深拷贝实现思路:

    假设有这样一个对象:

    0.遍历对象(数组)  for(let prop in obj)
    1.判断对象的每一项是不是原始值,如果是原始值则直接赋值 (补充:通过 typeOf()判断是否是原始值 返回object则不是(数组也是一种特殊对象))


    2.如果不是原始值,判断该项是数组还是对象,建立相应的数组或者对象

    如何判断数组和对象?

    3.递归遍历该项

    实现代码如下:

    结果:

    深拷贝后的结果

    相关文章

      网友评论

          本文标题:深拷贝

          本文链接:https://www.haomeiwen.com/subject/elkvcktx.html