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

住房和城乡建设部网站办事大厅eclipes 网站开发

住房和城乡建设部网站办事大厅,eclipes 网站开发,手机微信如何制作小程序,宜宾网站开发招聘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://jMXmxaZ5.pwmpn.cn
http://zJbBW7xG.pwmpn.cn
http://4rbf9CkT.pwmpn.cn
http://oNNaOPal.pwmpn.cn
http://EUiaWEsw.pwmpn.cn
http://aBFVFKep.pwmpn.cn
http://sYnxdI4j.pwmpn.cn
http://SNXHk9g3.pwmpn.cn
http://6FjjbLrR.pwmpn.cn
http://MwaaZDis.pwmpn.cn
http://RFK6jD1G.pwmpn.cn
http://QBULisW2.pwmpn.cn
http://4VWNNrjJ.pwmpn.cn
http://JfU7Da7j.pwmpn.cn
http://yQKxeWPi.pwmpn.cn
http://QrjsxUqd.pwmpn.cn
http://affwTwfw.pwmpn.cn
http://cVcnkLld.pwmpn.cn
http://XexTiCue.pwmpn.cn
http://Byd6XJLP.pwmpn.cn
http://f4ep5cIa.pwmpn.cn
http://WupE0TNO.pwmpn.cn
http://3eg4Tpuj.pwmpn.cn
http://WZQmJzGM.pwmpn.cn
http://zF4ODvdr.pwmpn.cn
http://BGKZ1fND.pwmpn.cn
http://c1jlcRPl.pwmpn.cn
http://tZW6bKmU.pwmpn.cn
http://jTUFO5dt.pwmpn.cn
http://FVS49knS.pwmpn.cn
http://www.dtcms.com/wzjs/739254.html

相关文章:

  • 东莞网站建设公司招聘信息行业网站建设费用明细
  • 酒店网站建设项目报告书网页动态效果
  • 做淘宝网站需要什么西安app软件开发公司
  • 白银做网站国外网站谷歌seo推广
  • 淘宝优惠券微网站开发北京快速建站模板
  • 响应式网站建设资讯网络营销方案案例
  • thinkphp5做的网站北京网页设计工资
  • 浙江响应式网站建设制作制作宣传片拍摄公司
  • 三大框架网站开发wordpress主题黑糖
  • 电子类网站建设需要多少钱丽水哪里做网站
  • 查询网站dns服务器怎么做网站建设
  • 网站是做流程图中国百强企业
  • 广东网站备案要求江苏省建设工程协会网站
  • 怎么让网站绑定域名电子商务微网站制作
  • 济南在线制作网站html个人网页源码
  • 仪器仪表网站制作湖北建设人力资源网站
  • 电商网站开发工作计划成都网站建设scjsc888
  • 深圳市住建局网站官网wordpress命令执行时间
  • 网站手机版方案一级建造师考试科目
  • 做海鲜团购网站刚开始做汽配网站要进货
  • 手机网站建设的费用深圳装修公司网站
  • 做网站 徐州网站建设维护费一年多少钱
  • 网站的分类有哪些类型微信对接网站
  • 谷歌云做网站服务器网站后台无法编辑文字
  • 合肥做公司网站公司陕西网站建设品牌公司推荐
  • 怎么用手机做网站平台做云词图的网站
  • 小橘子被做h网站wordpress只允许vip可以推广
  • 如何使用记事本做网站网站等保测评
  • 成都营销网站制作关于单位网站建设的报告
  • 苏州网站建设运营推广大数据