JavaScript的深浅拷贝
一、基本数据类型的赋值操作
基本数据类型存储在栈中,并且存储的是数据。定义一个变量str1,并且将这个变量的值赋值给另一个变量str2,此时对str1存储的数值进行修改,str2中存储的数据并不会受影响。
代码如下:
执行结果:
二、引用数据类型的浅拷贝
直接将一个引用数据类型的地址,赋值给另一个变量的存储(地址存储在栈中,数据存储在堆中。)称为浅拷贝。两个变量存储的是同一个内存地址,对其中一个进行操作,另一个也会改变。
代码如下:
执行结果:
三、深拷贝
建立一个新的变量,两个变量存储的是不同的内存地址,但是这两个内存地址中存储的数据相同。只复制引用数据类型中的数据,而不是地址的操作称为深拷贝。
代码如下:
执行结果: