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

网站国际联网备案wordpress雪人2.0主题

网站国际联网备案,wordpress雪人2.0主题,贵阳公司网站建立,重庆自有网站推广🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ 目录 ✨ 前言 ✨ 正文 浅拷贝 对象的浅拷贝 数组的浅拷贝 浅拷贝的问题 深拷贝 什么是深拷贝…

🧑‍🎓 个人主页:《爱蹦跶的大A阿》

🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》

​ 

目录

✨ 前言

✨ 正文

浅拷贝

对象的浅拷贝

数组的浅拷贝

浅拷贝的问题

 深拷贝

什么是深拷贝?

如何实现深拷贝?

方法一:使用JSON对象

方法二:递归拷贝

注意事项

✨ 结语


✨ 前言

       浅拷贝和深拷贝的区别在于当对象中的属性是引用类型时,拷贝是引用的拷贝,还是引用所指向的对象的拷贝。

        浅拷贝只复制对象和其属性的引用,而不复制属性指向的对象本身。因此源对象和拷贝对象引用同一个对象。改变其中一个会影响另一个。

        深拷贝会递归复制整个对象及其属性,拷贝后的对象与原对象不共享内存,修改拷贝对象不会影响原对象。

        拷贝是编程中常见的需求,JavaScript中有深拷贝和浅拷贝之分,理解二者差异很重要。本文将全面解析拷贝的实现方式。

✨ 正文

浅拷贝

对象的浅拷贝

        浅拷贝会创建对象或数组的一份浅复制,只复制第一层的属性值,更深层次的对象仍保持引用关系。

对象的浅拷贝可以使用Object.assign():

let obj1 = {a: 1,b: {c: 2  }
};let obj2 = Object.assign({}, obj1);

        obj2只会拷贝obj1第一层的a属性值,而 deeper object b仍然指向同一个引用。

展开语法(...)也可以实现浅拷贝:

let obj2 = {...obj1};

数组的浅拷贝

        数组的slice()方法可以浅拷贝数组:

let arr1 = [1, 2, [3, 4]];
let arr2 = arr1.slice();

        arr2也只会拷贝arr1的一层元素,更深层的数组仍指向同一个。

浅拷贝的问题

        由于指向同一对象,修改会互相影响:

obj2.b.c = 20; // obj1.b.c也变为20
arr2[2].push(5); // arr1也会增加元素5

 深拷贝

什么是深拷贝?


        深拷贝是在JavaScript中复制一个对象或数组,使其成为一个完全独立的新副本。在进行深拷贝时,不仅需要复制对象本身,还需要递归地复制对象中的所有嵌套对象和数组。这确保了原始对象和拷贝对象之间的修改互不影响。

如何实现深拷贝?

方法一:使用JSON对象
let newObj = JSON.parse(JSON.stringify(oldObj));

这种方法简单易用,但是有一些局限性。例如,它不能复制函数和正则表达式对象

方法二:递归拷贝
function deepClone(obj) {let clone = Array.isArray(obj) ? [] : {};if (obj && typeof obj === "object") {for (let key in obj) {if (obj.hasOwnProperty(key)) {if (obj[key] && typeof obj[key] === "object") {clone[key] = deepClone(obj[key]);} else {clone[key] = obj[key];}}}return clone;} else {return obj;}
}

        这种方法可以复制大多数类型的对象,但是对于特殊对象,如Date对象、正则对象等,还需要特殊处理。

注意事项


        深拷贝复制所有字段,并复制字段所指向的动态分配内存。深拷贝发生在对象及其引用的对象被复制时。默认情况下基本数据类型(number,string,null,undefined,boolean)都是深拷贝

✨ 结语

        在编程的世界里,理解和掌握浅拷贝、深拷贝的概念和实现方式是非常重要的。希望通过这篇博客,你对JavaScript的浅拷贝、深拷贝有了更深入的理解。记住,不断学习和实践是提升编程技能的关键。祝你在编程的道路上越走越远,加油!

http://www.yayakq.cn/news/956060/

相关文章:

  • 如何创建个人的网站网站建设找哪个好
  • 网站开发策划书怎么写项目概述
  • 空间做子网站上海app服务商
  • 天津网站建设公司排名flash网站设计教程
  • wordpress网站刷新揭阳网站制作怎样
  • 小学网站源码重庆制作网站培训
  • 中卫网站设计公司招聘专注赣州网站建设
  • 公司网站设计 上海天元建设集团有限公司 企查查
  • 为何要屏蔽网站快照wordpress文档模板下载
  • 网站开发 简单留言板淘宝客做网站备注怎么写的
  • 网站开发流程相关知识开发小程序用什么语言
  • 高端定制网站设计公司音乐介绍网站怎么做的
  • 做网站审批号必须要如何用域名做网站访问
  • 网站内容页怎么设计模板四川网站建设电话
  • 做新房什么网站好大多数网站开发现状
  • 青海网站设计企业开网站空间流量怎么选择
  • 企顺网网站建设程序代码优化网站
  • 网站设置成灰色网站建设 书籍
  • cdr做网站怎么导出在线排版设计
  • 网站源码路径怎么在建设银行网站留言
  • 夹江移动网站建设做网站是怎么挣钱的
  • 太原网站优化技术网页设计公司网易企业邮箱
  • 建站网站怎么上传代码外贸业务员如何寻找国外客户
  • 宝德科技专业嘉兴网站建设wordpress添加单页模板
  • 腾讯域名注册网站九江有没有做网站的公司
  • 安徽建新建设工程有限公司网站wordpress 图文插件
  • 网站建设主要学什么软件用python做的网站
  • 网站开发接外包wordpress清理
  • 重庆森林电影佛山网站建设优化
  • 学做软件的网站百度推广获客