美文网首页
深拷贝和浅拷贝

深拷贝和浅拷贝

作者: _Alisa_ | 来源:发表于2018-12-09 11:51 被阅读0次

    浅拷贝是拷贝一层,深层次的对象级别的就拷贝引用;深拷贝是拷贝多层,每一级别的数据都会拷贝出来;

    浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;

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

    浅拷贝的实现

         修改拷贝后的对象的属性时,原对象也会发生改变

    深拷贝的实现

       ①手动复制    

      ②object.assign({},原对象,原对象....)  参数1 目标对象   参数二  原对象,可以拷贝多个对象

       如果只有一层,会实现深拷贝,

       如果有嵌套,就是普通的浅拷贝    

    ③转成JSON

     用JSON.stringify把对象转成字符串,再用JSON.parse把字符串转成新的对象

    缺陷是会破坏原型链,并且无法拷贝属性值为function的属性

    ④递归

    相关文章

      网友评论

          本文标题:深拷贝和浅拷贝

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