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

取名算命网站的源代码asp+access基本建筑网站

取名算命网站的源代码asp+access,基本建筑网站,广州市 网站 建设,沈阳快速建站模板什么是深拷贝什么是浅拷贝,两者区别 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://www.dtcms.com/a/533522.html

相关文章:

  • h5游戏免费下载:堆木头
  • 封面免费制作网站美业推广平台
  • 建设营销型网站的原因开发手机网站教程
  • 007-Spring AI Alibaba Agent 功能完整案例
  • app定制开发商城长春seo培训
  • Boost.Iostreams 简介
  • S4.2.6.9 LTSSM 之 Disabled 状态
  • Rag优化 - 如何提升首字响应速度
  • 甘肃省建设厅质量投诉网站wordpress 没有注册
  • 怎么建立自己的网站?调用wordpress评论框
  • 外贸建站的公司京东网站注册
  • 用php做网站用到的工具app软件开发课程
  • 做的最好的微电影网站wordpress v电影
  • 整体设计 全面梳理复盘 之8 元数据标准库 + 原始模板设计与程序联动闭环(豆包助手)
  • 国内最大的开源网站wordpress友情联机
  • 中国flash网站模板中心中国网站名
  • SpringBoot的搭建方式
  • 【每天一个知识点】负二项分布(Negative Binomial Distribution, NB分布)
  • 管理网站建设义乌企业网站搭建首选
  • 重庆网站开发网站维护需要关闭网站么
  • 29-机器学习开发框架比较:分析不同框架的适用场景和优缺点
  • STM32F103C8T6--DMA
  • 佛山网站常见的问题大理州建设局官方网站
  • 做企业网站的研究现状简答题网络营销是什么
  • 阮一峰《TypeScript 教程》学习笔记——tsc 命令
  • pos机做网站推广上传文件到网站根目录
  • 德州王霞网站建设郑州企业建筑设计软件
  • 怎样建设简单的网站网站建设论文任务书
  • 最新电子电气架构(EEA)调研-1
  • 简述网站开发的工作流程企业运营模拟实践报告