美文网首页
对象的深浅拷贝

对象的深浅拷贝

作者: 关耳木南 | 来源:发表于2019-07-09 17:47 被阅读0次

浅拷贝:只做一层拷贝,问题:如果对象的某个属性是引用类型,就会出现问题。
深拷贝:遇到某一条属性是引用类型,也会拷贝过来,但是引用地址是不一样的。

<script type="text/javascript"> 
    const obj = {
        a:1,
        b:["a","b"]
    }
    function extend(o1,deep){//deep为true是深拷贝
        var obj = {};
        if(o1 instanceof Array){
            obj = []
        }
        for(var key in o1){
            var value = o1[key];
            //确定value是不是引用类型,前提是deep:true
            obj[key] = (!!deep && typeof value==="object" && value !== null) ? extend(value,deep) : value 
        }
        return obj
    }
    const obj2 = extend(obj,true);
    obj2.b.push("c");
    console.log(obj);
    console.log(obj2);
</script>
1.jpg
//另一种拷贝
    
    const obj3 = {
        a:1,
        b:["a","b"]
    }
    const obj4 = JSON.parse(JSON.stringify(obj3));

    obj4.b.push("c");
    console.log(obj3);
    console.log(obj4);
1.jpg

相关文章

  • 对象深浅拷贝

    关于对象的深浅拷贝,个人有以下几点见解: 1.深拷贝和浅拷贝只针对像Object, Array这样的引用类型数据。...

  • 深浅拷贝 对象

    先定义一个对象 一、浅拷贝 结果:原对象和拷贝后的对象都被修改了! 二、深拷贝 结果:拷贝后的原对象没有被修改,而...

  • 对象深浅拷贝

    浅拷贝 深拷贝

  • 前端笔记(二) 对象的深浅拷贝,函数的防抖与节流,函数柯里化 ,

    对象的深浅拷贝 对象的深拷贝与浅拷贝的区别: 浅拷贝:仅仅复制对象的引用, 而不是对象本身。 深拷贝:把复制的对象...

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • 对象的深浅拷贝

    浅拷贝 深拷贝 方法1 方法2

  • 对象的深浅拷贝

    浅拷贝:只做一层拷贝,问题:如果对象的某个属性是引用类型,就会出现问题。深拷贝:遇到某一条属性是引用类型,也会拷贝...

  • 对象的深浅拷贝

    浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象...

  • 深浅拷贝

    深浅拷贝 赋值操作,没有创建新对象浅拷贝,只拷贝第一份内容 [:] copy()浅拷贝,把这个对象的内容全部拷贝一...

网友评论

      本文标题:对象的深浅拷贝

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