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

深圳宝安通网站建设唐山哪里建轻轨和地铁

深圳宝安通网站建设,唐山哪里建轻轨和地铁,wordpress流量站,网站建设的考虑1. 拷贝的基本概念和必要性 在 JavaScript 中,数据类型分为基本数据类型(如 Number、String、Boolean、Null、Undefined、Symbol)和引用数据类型(如 Object、Array)。基本数据类型存储的是值本身,而引用数…

1. 拷贝的基本概念和必要性

在 JavaScript 中,数据类型分为基本数据类型(如 NumberStringBooleanNullUndefinedSymbol)和引用数据类型(如 ObjectArray)。基本数据类型存储的是值本身,而引用数据类型存储的是内存地址。当需要对数据进行操作且不想影响原始数据时,就需要进行拷贝。

2. 浅拷贝(Shallow Copy)

概念

浅拷贝创建一个新对象,新对象的顶层属性是原始对象属性的副本,但如果原始对象的属性是引用类型,新对象和原始对象会共享这些引用类型属性的内存地址。也就是说,修改新对象中引用类型的属性会影响原始对象中对应的属性。

实现方式
  • 扩展运算符(Spread Operator):常用于数组和对象的浅拷贝。
// 数组浅拷贝
const originalArray = [1, [2, 3]];
const shallowCopiedArray = [...originalArray];
shallowCopiedArray[1][0] = 9;
console.log(originalArray); // 输出: [1, [9, 3]]// 对象浅拷贝
const originalObject = { a: 1, b: { c: 2 } };
const shallowCopiedObject = { ...originalObject };
shallowCopiedObject.b.c = 9;
console.log(originalObject.b.c); // 输出: 9
  • Object.assign():用于将一个或多个源对象的所有可枚举属性复制到目标对象。
const original = { a: 1, b: { c: 2 } };
const shallowCopy = Object.assign({}, original);
shallowCopy.b.c = 9;
console.log(original.b.c); // 输出: 9
  • Array.prototype.slice():常用于数组的浅拷贝。
const arr = [1, [2, 3]];
const newArr = arr.slice();
newArr[1][0] = 9;
console.log(arr); // 输出: [1, [9, 3]]

3. 深拷贝(Deep Copy)

概念

深拷贝会递归地复制对象及其所有嵌套的属性,创建一个完全独立的新对象,新对象和原始对象在内存中没有任何共享部分。修改新对象的任何属性都不会影响原始对象。

实现方式
  • JSON.parse(JSON.stringify()):这是一种简单的深拷贝方法,但有局限性。它不能处理函数、Symbol 类型的属性、Date 对象、RegExp 对象等。
const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
deepCopy.b.c = 9;
console.log(original.b.c); // 输出: 2
  • 递归实现:自定义函数递归地复制对象和数组。
function deepClone(obj) {if (typeof obj !== 'object' || obj === null) {return obj;}let clone;if (Array.isArray(obj)) {clone = [];for (let i = 0; i < obj.length; i++) {clone[i] = deepClone(obj[i]);}} else {clone = {};for (let key in obj) {if (obj.hasOwnProperty(key)) {clone[key] = deepClone(obj[key]);}}}return clone;
}const original = { a: 1, b: { c: 2 } };
const deepCopy = deepClone(original);
deepCopy.b.c = 9;
console.log(original.b.c); // 输出: 2

http://www.dtcms.com/a/451085.html

相关文章:

  • 国内简洁网站湖南网络推广排名
  • 北斗导航 | 2024-2025年RAIM算法在知网论文中的研究进展总结
  • 一个服务器多个网站好吗随州最新消息
  • 怎么制作一个自己的网站烟台南山集团网站建设
  • 【题解】P2587 [ZJOI2008] 泡泡堂 [贪心]
  • 网站策划书编写个人养老金制度9月底前亮相
  • 苏州企业建设网站价格河南省建设厅注册中心网站首页
  • 兰州网站建设技能论文天津注册公司网站
  • 网站打开慢是什么原因本机可以做网站的服务器
  • 网站建设服务哪里便宜郑州做商城网站
  • 网站建设需要哪些泰国网站域名
  • 西安网站建设是什么广告公司名字怎么起
  • 学生做网站的工作室同一个ip的网站做链接有用
  • 公司名称变更网站备案怎么处理怎么自己设计装修效果图
  • 数据结构:七大线性数据结构从结构体定义到函数实现的的区别
  • 开发公司五证包括什么网站运营优化
  • 网站空间购买 北京域名及网站建设实验报告
  • 如何购买建设网站系统微商自己做网站
  • 建设网站需要几个步骤wordpress缩 图
  • 台州黄岩网站建设郑州网站建设 云极
  • 移动端网站开发项目国学底蕴的公司名字
  • 中英语网站制作方法搜资源
  • 东莞网站优化教程网站建设费是广告费吗
  • 苹果发布 RL4HS 框架精准定位 LLM 幻觉
  • 1688网站怎么做网站改版seo
  • 做的比较好的美食网站有哪些网络彩票代理怎么做社区网站
  • 元宇宙的历史教训:从虚拟世界泡沫中学习
  • 网站实名制注册怎么做wordpress短视频模板
  • 网站开发采用了哪些技术苏州网站设计价格
  • 商务网站建设过程企企业业网网站站建建设设