深浅拷贝

最近发现基础知识还是很重要的 之前学过不太扎实都忘光了  所以最近捡一捡

如果觉得文章还不错 请留下个贊吧!


什么是深拷贝什么是浅拷贝?

浅拷贝: 仅仅是复制了原对象的存储地址,原对象变化 复制地址的对象也会变化(简单的对象)


const m1 = {a1: {b1: {c1: 12454}, d1: [1,23,4,5,7,89876,5665]}, a2: [1,23,4,567,888765,2,5]};

const m3 = {...m1};

浅拷贝示例: 仅仅是将最外层的数据进行了重新复制, 内部的数据还是复制的存储地址。

浅拷贝示例: 

const shallowCopy = function(obj) {

        if (typeof obj !== 'object') return ;

        let newo = obj instanceof  Array ? [] : {};

        for (const key in obj) {

                newo[key] = obj[key];

        }

        return newo;

};

上面的浅拷贝既然是最外层的已经不是一致的了 那我们深拷贝 就在复制值的时候判断一下是不是对象 数组,如果不是直接复制 ,如果是 接着调用 浅拷贝的数据呗。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、拷贝示例 当我们在操作数据之前,可能会遇到这样的情况: 会经常改动一组数据,但可能会用到原始数据 我需要两组一...
    寒羽鹿阅读 2,372评论 0 0
  • 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是...
    爱上西红柿炒蛋阅读 1,917评论 0 0
  • ---针对引用类型 传统复制 将两个变量都指向了同一块内存空间,A变动B也会随之变动; JavaScript le...
    米娅小栈阅读 1,807评论 0 0
  • underscore 的源码中,有很多地方用到了 Array.prototype.slice() 方法,但是并没有...
    theCoder阅读 3,712评论 0 1
  • [TOC] 引言 根据拷贝内容的不同,分为深浅拷贝 深拷贝:内容拷贝,且将指针指向新的内容 浅拷贝:只是简单的指针...
    时间已静止阅读 5,585评论 1 14