当前位置: 首页 > wzjs >正文

开个网站做代理医院网站建设方案招标文件

开个网站做代理,医院网站建设方案招标文件,dw做网站导航条,石家庄建站凡科什么是深拷贝什么是浅拷贝,两者区别 1.深拷贝 递归复制对象的所有层级,嵌套的引用类型属性,最后生成一个完全独立的新对象,与原对象无任何引用关联。 特点: 新对象和原对象的所有层级属性是独立的(修改…

什么是深拷贝什么是浅拷贝,两者区别

1.深拷贝

递归复制对象的所有层级,嵌套的引用类型属性,最后生成一个完全独立的新对象,与原对象无任何引用关联。

特点:

新对象和原对象的所有层级属性是独立的(修改不会相互影响)

2.浅拷贝

只复制对象的第一层属性,如果属性是引用类型(引用数据类型放在堆中,优先级)

如果属性是基本数据类型,浅拷贝会复制这些值。如果属性是引用数据类型,浅拷贝是只复制复制他们的内存地址,这就意味着新对象和原对象数据共享同一块内存中的引用对象

特点:原对象和新的对象第一层(基本数据类型)属性是相互独立的,但是深层(引用数据类型)属性是共享的(修改会互相影响)

实现方法

1、扩展运算符
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { ...obj1 };
obj2.a = 3;
obj2.b.c = 4;
console.log(obj1.a); // 1
console.log(obj1.b.c); // 4,同样被修改了,此处反应是浅拷贝,深拷贝不会发生改变
2、Object.assign
const obj2 =Object.assign({},...obj1)
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = Object.assign({}, obj1);
obj2.a = 3;
obj2.b.c = 4;
console.log(obj1.a); // 还是1,说明obj1的a属性没变
console.log(obj1.b.c); // 变成4了,所以obj1的b对象被修改了,是浅拷贝,而深拷贝是相互独立的
3、数组浅拷贝(slice、concat、展开运算符)
concat()	连接两个或多个数组,不影响原数组	返回一个新的数组
slice()	数组复制slice(begin、end)	返回被截取项目的新数组,不影原数组

3.两者区别

应用场景

何时使用浅拷贝?

浅拷贝适用于以下情况:

性能要求较高:浅拷贝复制速度快,因为它只复制基本数据类型和引用,而不复制引用对象本身。

对象结构简单:如果对象只包含不可变对象或没有多层次的嵌套引用,浅拷贝足以满足需求。

共享数据的场景:在某些情况下,需要多个对象共享相同的数据,以减少内存使用。例如,缓存数据的共享,浅拷贝可以使得多个对象共享相同的引用。

何时使用深拷贝?

深拷贝适用于以下情况:

数据独立性要求高:在需要确保原始对象和复制对象完全独立的情况下,深拷贝是必要的。这避免了一个对象的改变影响到另一个对象。

复杂数据结构:对于具有复杂嵌套引用的对象,深拷贝确保所有层次的引用对象都被复制,保证数据的完整性。

并发编程:在多线程环境中,深拷贝可以防止线程之间的相互干扰,提高程序的安全性和稳定性。

优缺点比较

浅拷贝的优缺点

优点:

速度快,效率高:因为只复制引用,浅拷贝的操作速度更快,占用的内存更少。
实现简单:浅拷贝通常只需简单的赋值操作,易于实现和维护。
缺点:

不独立:浅拷贝对象中的引用指向与原对象相同的内存区域,修改一个对象可能影响另一个对象,导致数据一致性问题。
易产生难以察觉的Bug:由于共享同一引用,可能在不经意间导致数据的修改,出现难以察觉的Bug。

深拷贝的优缺点

优点:

数据独立性强:深拷贝确保新对象与原对象完全独立,修改一个对象不会影响另一个对象,保证数据的安全性和独立性。
适用于复杂数据结构:深拷贝可以处理具有嵌套引用的复杂对象,确保复制后的对象数据完整。
缺点:

实现复杂:深拷贝需要递归复制所有引用对象,编写代码时容易出错,增加了代码的复杂性。
性能开销大:深拷贝需要分配新的内存空间,复制对象的过程较慢,占用更多的内存资源。


文章转载自:

http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://00000000.gyqnc.cn
http://www.dtcms.com/wzjs/603880.html

相关文章:

  • 网站开发与规划就业前景网站建设+用ftp上传文件
  • 扫码员在哪个网站可以做泰安小程序开发制作
  • 网站开发简历 自我评价网站里图片做超链接
  • 珠海公司网站制作网站开发框架具体是什么
  • 朔州市住房与城乡建设厅网站百度推广入口登录
  • 惠州建设局官方网站个人网站做博客还是做论坛
  • 自助众筹网站建设我的主页
  • 沈阳公司建设网站四川省住房和城乡建设厅门户网站
  • 做装潢网站中山网站建设工作
  • 做cps需要什么样的网站北京app开发网站建设
  • 什么网站需要服务器美丽乡村建设规划文本网站
  • 专业网站建设信息做公司网站协议书模板下载
  • 网站建设的几个要素seo兼职外包
  • 建设购物平台网站推荐大良营销网站建设
  • 擼擼擼做最好的导航网站wordpress防护屏蔽国外ip
  • 种子网站开发多少钱媒体发稿网站开发
  • 房管局网站做房查排名软件
  • 电子商务网站的类型国内买机票的网站建设
  • 申请网站到哪里长沙网站制作首页
  • 企业网站如何更新备案信息网页设计实训报告1000字
  • 湘潭网站建设 磐石网络在哪六安网约车平台
  • 58同城会员网站怎么做软件开发和网站建设那个好
  • 厦门市建设工程安全管理协会网站重庆网站seo建设
  • 宁波网站建设的价格表万网
  • 做网站大概什么价位vs网站开发 百度文库
  • 中国建设银行网站用户是什么一般购物网站怎么做推广
  • wordpress如何自动采集网站图片只做男生穿搭的网站
  • 温岭企业网站建设公司北京建网站定制价格
  • 网站建设预算申请成都发布最新消息
  • 杭州网站制作培训杭州网站建设公司官网