JavaScript中如何实现数组与非数组对象的深浅克隆原理详解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计772个文字,预计阅读时间需要4分钟。
目录+什么是浅拷贝、深拷贝+1. 对数组进行拷贝+1.1 浅拷贝+1.2 深拷贝+2. 对非数组对象进行拷贝+2.1 浅拷贝+2.2 深拷贝+3. 整合深拷贝函数+浅拷贝:直接将存储在栈中的存储地址复制给新的变量““
目录
- 什么是浅克隆、深克隆
- 1.对数组进行克隆
- 1.1 浅克隆
- 1.2 深克隆
- 2.对非数组对象进行克隆
- 2.1 浅克隆
- 2.2 深克隆
- 3.整合深克隆函数
什么是浅克隆、深克隆
浅克隆:直接将存储在栈中的值赋值给对应变量,如果是基本数据类型,则直接赋值对应的值,如果是引用类型,则赋值的是地址。
深克隆:将数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。即对象各个层级的属性。
JavaScript中基本数据类型使用符号“=”可以进行克隆,引用数据类型使用符号“=”只是改变了变量的指向,并没有进行真正的克隆操作。
1.对数组进行克隆
1.1 浅克隆
使用for循环进行浅克隆。
本文共计772个文字,预计阅读时间需要4分钟。
目录+什么是浅拷贝、深拷贝+1. 对数组进行拷贝+1.1 浅拷贝+1.2 深拷贝+2. 对非数组对象进行拷贝+2.1 浅拷贝+2.2 深拷贝+3. 整合深拷贝函数+浅拷贝:直接将存储在栈中的存储地址复制给新的变量““
目录
- 什么是浅克隆、深克隆
- 1.对数组进行克隆
- 1.1 浅克隆
- 1.2 深克隆
- 2.对非数组对象进行克隆
- 2.1 浅克隆
- 2.2 深克隆
- 3.整合深克隆函数
什么是浅克隆、深克隆
浅克隆:直接将存储在栈中的值赋值给对应变量,如果是基本数据类型,则直接赋值对应的值,如果是引用类型,则赋值的是地址。
深克隆:将数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。即对象各个层级的属性。
JavaScript中基本数据类型使用符号“=”可以进行克隆,引用数据类型使用符号“=”只是改变了变量的指向,并没有进行真正的克隆操作。
1.对数组进行克隆
1.1 浅克隆
使用for循环进行浅克隆。

