深拷贝和浅拷贝
在JavaScript中,对于object等引用类型值,当从一个变量向另一个变量复制引用类型值时,这个值的副本其实是一个指针,两个变量指向同一个堆对象,改变其中一个变量,另一个也会受到影响。
很多情况下,我们都需要给变量赋值,但希望和原来变量不再共存一个地址。所以就要实现深拷贝。
深拷贝的两种实现
|
|
- 第一种深拷贝(通过递归实现深拷贝)
|
|
- 第二种深拷贝(利用JSON对象中的parse和stringify)
|
|
在JavaScript中,对于object等引用类型值,当从一个变量向另一个变量复制引用类型值时,这个值的副本其实是一个指针,两个变量指向同一个堆对象,改变其中一个变量,另一个也会受到影响。
很多情况下,我们都需要给变量赋值,但希望和原来变量不再共存一个地址。所以就要实现深拷贝。
|
|
|
|
|
|