JavaScript深拷贝函数
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深拷贝函数相关推荐
- javascript深拷贝函数封装
在javascript,python这种带引用类型的高级程序设计语言中,很容易出现浅拷贝而导致错误. 本篇文章,我浅述一下我对js中深拷贝函数封装的思考. 思路很简单,封装一个递归函数,终止条件是'不 ...
- javascript 深拷贝函数
javascript具有两大数据类型,基本数据类型和引用数据类型. 基本数据类型包括Undefined.Null.Boolean.Number.String.Symbol (ES6新增)六 种. 引用 ...
- js 对象深拷贝_这一次,彻底理解JavaScript深拷贝
导语 这一次,通过本文彻底理解JavaScript深拷贝! 阅读本文前可以先思考三个问题: JS世界里,数据是如何存储的? 深拷贝和浅拷贝的区别是什么? 如何写出一个真正合格的深拷贝? 本文会一步步解 ...
- 通俗易懂讲解JavaScript深拷贝和浅拷贝
基本类型和引用类型 在开始讲解JavaScript的深拷贝和浅拷贝之前,先要认识JavaScript的两种基本数据类型.一种是基本类型(值类型),另外一种是引用类型.其中基本类型包括undefined ...
- typescript或javascript深拷贝Object json
typescript或javascript深拷贝Object json Object的json对象很多时候我们需要深拷贝,我写了两个工具函数,供大家参考. deepCopyObject 深拷贝一个Ob ...
- 带你学习javascript的函数进阶(二)
上一篇文章分享了<带你学习Javascript中的函数进阶(一)>,今天继续学习javascript的函数进阶的内容. 文章目录 1 严格模式 1.1 什么是严格模式 1.2 开启严格模式 ...
- 实现深拷贝还在用JSON.parse(JSON.stringfy(obj))?带你用JS实现一个完整版深拷贝函数
实现深拷贝还在用JSON.parse(JSON.stringify(obj))?带你用JS实现一个完整版深拷贝函数 目录 实现深拷贝还在用JSON.parse(JSON.stringify(obj)) ...
- 4种JavaScript深拷贝的方法
浅拷贝与深拷贝 浅拷贝是创建一个新对象,这个对象有着原始对象属性值的拷贝.如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的是内存地址 . 如果不进行深拷贝,其中一个对象改变了对象 ...
- JavaScript深拷贝的5种方法
目录 应用场景 方法一 方法二 方法三 方法四 方法五 参考链接 应用场景 JavaScript中,Object是引用类型,把对象objA赋值给objB之后,改变objB的值,objA会跟着改变.这是 ...
最新文章
- 云开发地图标记导航 云开发一次性取所有数据
- javascript运动的小框架
- React Native——react-navigation的使用
- 第一章 深入.NET框架
- sendto 返回errnor 1,错误码1 Operation not permitted
- tomcat mysql eclipse_eclipse与tomcat及javaweb和mysql相关内容
- 在将varchar值id转换为int时失败_Python—CAN报文转换工具教程
- python运行列表的结果不同_python 3 代码一模一样,出现运行结果不同的情况(只是不以为一样而已)...
- 微信小程序获取用户唯一openid,包含java
- 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践
- Tesseract-ocr实现图像文本识别
- 10-30-010-安全简介-Kafka 安全机制
- java dom4j 读取 xml_java使用dom4j读取xml示例
- 五大地形等高线特征_【新微专题】从等高线地形图的实际应用分析如何培养图表判读能力?...
- 软考高级 真题 2011年上半年 信息系统项目管理师 案例分析
- java独行风格 行尾_JAVA的特点
- The following error occured:
- 一文读懂 HTTPS 与 TLS证书链校验
- 如何实现可靠UDP传输
- Yolov5图像识别教程
热门文章
- OSChina 周日乱弹 —— 这个颜色从不让人失望
- 简述计算机网络协议的三个组成要素,计算机网络协议由哪三个要素组成?
- dell高性能服务器,戴尔_PowerEdge T440_塔式服务器_网络存储服务器_服务器 | Dell 中国大陆...
- 表格表头php,Excel表格表头怎么设置每页都有?
- 华为Matex提前上市为哪般?
- 实景灯箱内饰与测试点
- prettier一般代码规范
- 打卡-2023-4-1
- 复现PTA人事机考照片审核的功能
- 数据库三大范式通俗解析