首页 > 其他分享 >深拷贝和浅拷贝

深拷贝和浅拷贝

时间:2023-02-03 21:12:13浏览次数:32  
标签:对象 通过 内存 数组 拷贝 属性

1、什么是浅拷贝?

  创建一个对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基础类型,那么拷贝的就是基础类型的值;如果属性是引用属性,那么拷贝的就是内存地址。

  所以,如果其中一个对象修改了某些属性,那么另外一个对象就会收到影响。

2、什么是深拷贝?

  指从内存中完整地拷贝出来一个对象,并在堆内存中为其分配一个新的内存区域来存放

  并且,修改该对象的属性不会影响到原来的对象

3、深拷贝和浅拷贝的实现方式有哪些?

  浅拷贝:Object.assign的方式; 通过对象扩展运算符; 通过数组的slice方法; 通过数组的concat方法

  深拷贝:通过JSON.stringify来序列化对象;手动实现递归的方式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

标签:对象,通过,内存,数组,拷贝,属性
From: https://www.cnblogs.com/felix-felix/p/17090439.html

相关文章

  • python 深拷贝和浅拷贝
    python深拷贝和浅拷贝变量:存储对象的引用对象:会分配一块内存空间,存储实际数据引用:变量指向对象,理解为指针变量存储在栈内存,对象存储在堆内存。Python数据类型分为......
  • js深拷贝封装方法
    //使用递归的方式实现数组、对象的深拷贝functiondeepClone1(obj){//判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝varob......
  • Java基础-浅拷贝和深拷贝
    浅拷贝浅拷贝会在堆上创建一个新的对象,如果原对象的属性是一个引用类型,拷贝的内部对象是原对象内部对象的引用地址,即原对象和拷贝对象用的是同一个内部对象。classInner......
  • slice的拷贝:
    1>浅拷贝:只是复制指向对象的指针公用相同的底层数组任何一个数组元素的改变都会影响到双方赋值方式slice1:=slice2(浅拷贝地址复制)2>深拷贝:拷贝的是数据本身......
  • C/C++ 文件IO 拷贝文件,将二进制文件写为十六进制
    查看代码 #include<fstream>#include<iostream>#include<iomanip>//#include"flow.h"unsignedcharbuf[2048];unsignedcharflow[10];voidread_f(){......
  • 记录几个正态分布相关的函数(从GSL里拷贝出来的)
    做芯片测试经常需要分析很多的数据,而正态分布应用最多,这些函数电子表格软件中都有,但是写在测试程序里,直接生成报告会更爽一些,尤其是遇到需要反复验证数据的情况。///////......
  • C#高性能数组拷贝实验
    前言昨天wc(Wyu_Cnk)提了个问题C#里多维数组拷贝有没有什么比较优雅的写法?这不是问对人了吗?正好我最近在搞图像处理,要和内存打交道,我一下就想到了在C#里面直接像C/......
  • 对象拷贝
    1.对象拷贝1.1浅拷贝当pkt与新对象newobjects的构造函数new()一起使用时,pkt中的内容将被复制到pkt2中。Packetpkt,pkt2;pkt=new;pkt2=newpkt;这种方法称......
  • 判断go对象是否能直接赋值进行深拷贝
    在golang中可以使用a:=b这种方式将b赋值给a,只有当b能进行深拷贝时a与b才不会互相影响,否则就需要进行更为复杂的深拷贝。下面就是Go赋值操作的一个说明:Go语言中所有赋值......
  • 探究Array.of为浅拷贝
    发现一个很有意思的事/***Array.of是否为浅拷贝*/constarr=[1,{x:1}]constarrOf=Array.of(...arr)console.log('arr',arr)arrOf[0]='zjy'......