美文网首页
深拷贝浅拷贝的理解与区别

深拷贝浅拷贝的理解与区别

作者: Even啦 | 来源:发表于2020-04-09 17:04 被阅读0次

浅拷贝可理解成应用,深拷贝可理解成复制出一个全新的东西。

例如 A,B复制了A,修改A

B跟着A变化了===>浅拷贝 shallowCopy (A和B其实是指向堆内存的同一个值)

B不变===>深拷贝 deepCopy(B是不同于A的全新的不同的值)

浅拷贝例子:

var a=[1,2,3]

        var b=a;

        a[0]=5;

        console.log(b) // [5,2,3]

深拷贝:

function deepClone(obj) {

            var newObj = obj instanceof Array ? [] : {};

            if (typeof obj !== 'object') {

                return obj;

            } else {

                for (var i in obj) {

                    newObj[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i];

                }

            }

            return newObj;

        }

        var a = [1, 2, 4, 6, [1, 2]];

        var b = deepClone(a);

        a[3] = 7;

        console.log(a);    / / [1, 2, 4, 7, [1, 2]];

        console.log(b);    / /[1, 2, 4, 6, [1, 2]];

相关文章

  • iOS 深浅拷贝

    iOS深拷贝与浅拷贝的区别 深拷贝与浅拷贝的概念:(我的理解,望不吝赐教) 浅拷贝:只copy一份对象的指针,指向...

  • 深拷贝和浅拷贝

    干货!深拷贝和浅拷贝的区别 深拷贝才是拷贝,浅拷贝就是Retain Copy与Retain的区别 Copy: 根据...

  • js浅拷贝、深拷贝

    前言 本文主要简单讲一下什么是浅拷贝、什么是深拷贝、深拷贝与浅拷贝的区别,以及怎么进行深拷贝和怎么进行浅拷贝。 一...

  • copy和mutableCopy的区别

    copy和mutableCopy的区别 深拷贝和浅拷贝的区别 在OC中对象的拷贝方式有两种:深拷贝和浅拷贝.浅拷贝...

  • 深拷贝与浅拷贝

    本文将讲述一下几点 深拷贝与浅拷贝的区别。 深拷贝的常用方法 切记。只有引用类型才存在深拷贝与浅拷贝的问题哦~,基...

  • iOS--拷贝相关题

    1、什么是深拷贝什么是浅拷贝?浅拷贝和深拷贝的区别 * 浅拷贝(shallow copy):指针拷贝,对于被拷贝对...

  • iOS之深拷贝与浅拷贝

    深拷贝与浅拷贝是在内存管理中非常重要的概念,理解好深拷贝和浅拷贝也有助于加深对iOS的内存管理的理解。 深拷贝与浅...

  • js深拷贝浅拷贝

    目录 一.数据类型 二.浅拷贝与深拷贝 三.赋值和浅拷贝的区别 四.浅拷贝的实现方式 五.深拷贝的实现方式 一.数...

  • python(进阶一)

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

  • 简述三范式,GIL,浅拷贝与深拷贝

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

网友评论

      本文标题:深拷贝浅拷贝的理解与区别

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