使用JavaScript实现对象的深度克隆
来源:互联网 发布:大数据编程 书籍推荐 编辑:程序博客网 时间:2024/05/17 13:45
JavaScript中的数据类型分为两大类:原始类型和对象类型。(1)原始类型包括:数值、字符串、布尔值、null、undefined(我们需要克隆的主要是前面三个)(2)对象类型包括:对象(Object),函数(Function)、数组(Array)。在克隆过程中对这两类数据类型的处理方式是不一样的,下面先分别讲解两种数据类型的克隆方式。
一、原始类型克隆
1、数值的克隆
2、字符串的克隆
3、布尔值的克隆
由于原始类型存储的是对象的实际数据,因此我们可以通过简单的复制方式即可得到正确的结果,而且不影响之前的对象。
二、对象类型克隆
1、数组的克隆
对象类型存储的是对象的引用地址,而把对象的实际内容单独存放,因为对象类型通常比较庞大,这是数据开销和内存开销优化的手段。因此我们不能像原始数据类型一样简单的赋值,而应该遍历数据中的每一个元素,将其中的每一个原始数据类型复制过去,做法如下:
2、对象的克隆
参照数组的克隆,我们采用同样的思想进行对象的克隆:
3、函数的克隆
由于函数对象克隆之后的对象会单独复制一次并存储实际数据,因此并不会影响克隆之前的对象。所以采用简单的复制“=”即可完成克隆。
三、通用的对象克隆
通过上面的分析,我们知道对于原始类型以及对象类型中的函数是可以直接通过“=”复制来实现克隆,而对于对象和数组,则需要遍历每一个元素,如果元素为对象或数组,则需继续遍历,直到为原始类型或函数,则直接通过“=”复制。
阅读全文
0 0
- 使用JavaScript实现对象的深度克隆
- JavaScript的对象深度克隆
- JavaScript对象深度克隆
- javascript中对象的深度克隆
- JavaScript中对象的深度克隆
- javascript中对象的深度克隆
- javascript中对象的深度克隆
- JavaScript的对象深度克隆方法
- javaScript中对象的深度克隆
- javascript中对象的深度克隆
- javascript中对象的深度克隆
- JavaScript 深度克隆 JSON 对象
- javascript深度克隆一个对象
- javascript深度克隆一个对象
- 使用对象输入输出流(ObjectOutputStream,ObjectInputStream)实现序列化对象的深度克隆
- JS对象深度克隆实现
- javascript实现深度赋值\深度克隆
- js中对象深度克隆,以及ES6中的深度克隆的实现
- jsp include 的flush属性
- Hadoop基础之MapReduce
- linux编程---线程---读写锁
- Maximum_Length_of_Pair_Chain
- Java 开发环境配置
- 使用JavaScript实现对象的深度克隆
- Android OkHttp详细介绍
- vector和list区别【转】
- HashMap链表在Java1.7与1.8中的区别
- azkaban任务延迟执行问题跟进
- POJ2135 Farm Tour —— 最小费用最大流
- hdu 3613 Best Reward(exkmp)
- Freemarker新手教程
- Vitural Box 手动复制镜像后导入报uuId冲突