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

3.对象的深浅拷贝

作者: 谷子多 | 来源:发表于2018-01-06 17:48 被阅读0次

1、概念 : 

    生成与原对象一模一样的对象。

    注意 :简单类型的赋值为赋值,复合类型的赋值为赋址。


2、两种拷贝形式:

    1.浅拷贝:只会复制对象的第一层数据

    2.深拷贝:不仅仅会复制第一层的数据,如果里面还有对象,会继续进行复制,直到复制到全是基本数据类型为止。

        思路:如果是简单类型,就直接赋值,如果是复合类型,就继续循环遍历。


3、数组和对象的拷贝

         数组可以使用for循环拷贝数据给另一个对象;

        对象可以使用for...in...循环去拷贝数据给另一个对象;

        数组:复制一个数组。因为是复合类型,如果直接arr2 = arr1,如果arr2后面进行了push等操作,就会影响到原数组,因为指向的是同一个内存地址,所以可以用以下方式进行复制值操作

      对象:



4、Object.assign()

    和extend类似对象的拷贝,是浅拷贝,只复制一层。

    Object.assign(target, source1,source2,source3...) :右值赋给左值

    合并多个对象,用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)

    注意:看以下代码,arr1的对应的下标数组会覆盖arr2对应的下标,如果arr1只有一个,那么就只会覆盖arr2的第一个。


相关文章

  • 3.对象的深浅拷贝

    1、概念 : 生成与原对象一模一样的对象。 注意 :简单类型的赋值为赋值,复合类型的赋值为赋址。 2、两种拷贝...

  • 对象深浅拷贝

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

  • 深浅拷贝 对象

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

  • 对象深浅拷贝

    浅拷贝 深拷贝

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

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

  • js的深浅拷贝

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

  • JS文集的目录

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

  • 对象的深浅拷贝

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

  • 对象的深浅拷贝

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

  • 对象的深浅拷贝

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

网友评论

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

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