deepClone = (target) => {// 定义一个变量let result;// 如果当前需要深拷贝的是一个对象的话if (typeof target === 'object') {// 如果是一个数组的话if (Array.isArray(target)) {result = []; // 将result赋值为一个数组,并且执行遍历for (let i in target) {// 递归克隆数组中的每一项result.push(this.deepClone(target[i]))}// 判断如果当前的值是null的话;直接赋值为null} else if (target === null) {result = null;// 判断如果当前的值是一个RegExp对象的话,直接赋值    } else if (target.constructor === RegExp) {result = target;} else {// 否则是普通对象,直接for in循环,递归赋值对象的所有值result = {};for (let i in target) {result[i] = this.deepClone(target[i]);}}// 如果不是对象的话,就是基本数据类型,那么直接赋值} else {result = target;}// 返回最终结果return result;
}

JavaScript深拷贝函数相关推荐

  1. javascript深拷贝函数封装

    在javascript,python这种带引用类型的高级程序设计语言中,很容易出现浅拷贝而导致错误. 本篇文章,我浅述一下我对js中深拷贝函数封装的思考. 思路很简单,封装一个递归函数,终止条件是'不 ...

  2. javascript 深拷贝函数

    javascript具有两大数据类型,基本数据类型和引用数据类型. 基本数据类型包括Undefined.Null.Boolean.Number.String.Symbol (ES6新增)六 种. 引用 ...

  3. js 对象深拷贝_这一次,彻底理解JavaScript深拷贝

    导语 这一次,通过本文彻底理解JavaScript深拷贝! 阅读本文前可以先思考三个问题: JS世界里,数据是如何存储的? 深拷贝和浅拷贝的区别是什么? 如何写出一个真正合格的深拷贝? 本文会一步步解 ...

  4. 通俗易懂讲解JavaScript深拷贝和浅拷贝

    基本类型和引用类型 在开始讲解JavaScript的深拷贝和浅拷贝之前,先要认识JavaScript的两种基本数据类型.一种是基本类型(值类型),另外一种是引用类型.其中基本类型包括undefined ...

  5. typescript或javascript深拷贝Object json

    typescript或javascript深拷贝Object json Object的json对象很多时候我们需要深拷贝,我写了两个工具函数,供大家参考. deepCopyObject 深拷贝一个Ob ...

  6. 带你学习javascript的函数进阶(二)

    上一篇文章分享了<带你学习Javascript中的函数进阶(一)>,今天继续学习javascript的函数进阶的内容. 文章目录 1 严格模式 1.1 什么是严格模式 1.2 开启严格模式 ...

  7. 实现深拷贝还在用JSON.parse(JSON.stringfy(obj))?带你用JS实现一个完整版深拷贝函数

    实现深拷贝还在用JSON.parse(JSON.stringify(obj))?带你用JS实现一个完整版深拷贝函数 目录 实现深拷贝还在用JSON.parse(JSON.stringify(obj)) ...

  8. 4种JavaScript深拷贝的方法

    浅拷贝与深拷贝 浅拷贝是创建一个新对象,这个对象有着原始对象属性值的拷贝.如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的是内存地址 . 如果不进行深拷贝,其中一个对象改变了对象 ...

  9. JavaScript深拷贝的5种方法

    目录 应用场景 方法一 方法二 方法三 方法四 方法五 参考链接 应用场景 JavaScript中,Object是引用类型,把对象objA赋值给objB之后,改变objB的值,objA会跟着改变.这是 ...

最新文章

  1. 云开发地图标记导航 云开发一次性取所有数据
  2. javascript运动的小框架
  3. React Native——react-navigation的使用
  4. 第一章 深入.NET框架
  5. sendto 返回errnor 1,错误码1 Operation not permitted
  6. tomcat mysql eclipse_eclipse与tomcat及javaweb和mysql相关内容
  7. 在将varchar值id转换为int时失败_Python—CAN报文转换工具教程
  8. python运行列表的结果不同_python 3 代码一模一样,出现运行结果不同的情况(只是不以为一样而已)...
  9. 微信小程序获取用户唯一openid,包含java
  10. 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践
  11. Tesseract-ocr实现图像文本识别
  12. 10-30-010-安全简介-Kafka 安全机制
  13. java dom4j 读取 xml_java使用dom4j读取xml示例
  14. 五大地形等高线特征_【新微专题】从等高线地形图的实际应用分析如何培养图表判读能力?...
  15. 软考高级 真题 2011年上半年 信息系统项目管理师 案例分析
  16. java独行风格 行尾_JAVA的特点
  17. The following error occured:
  18. 一文读懂 HTTPS 与 TLS证书链校验
  19. 如何实现可靠UDP传输
  20. Yolov5图像识别教程

热门文章

  1. OSChina 周日乱弹 —— 这个颜色从不让人失望
  2. 简述计算机网络协议的三个组成要素,计算机网络协议由哪三个要素组成?
  3. dell高性能服务器,戴尔_PowerEdge T440_塔式服务器_网络存储服务器_服务器 | Dell 中国大陆...
  4. 表格表头php,Excel表格表头怎么设置每页都有?
  5. 华为Matex提前上市为哪般?
  6. 实景灯箱内饰与测试点
  7. prettier一般代码规范
  8. 打卡-2023-4-1
  9. 复现PTA人事机考照片审核的功能
  10. 数据库三大范式通俗解析