深拷贝和浅拷贝

2019-03-18  本文已影响0人  喵喵_c938

浅拷贝只拷贝地址索引,内存不变,如:
a = {a:1};
b=a;
b.a=2;
那么a.a =2

深拷贝则是开了新的内存及索引,如:
a = {a:1};
b = JSON.parse(JSON.stringify({a:1}));
b.a = 2;
a.a=1;

基础数据类型和引用数据类型:
基础数据类型保存在栈内存,引用数据类型保存在堆内存。
栈内存要求固定大小,但是引用数据类型大小不固定,所以保存在堆内存中,但是可以把它的地址写在栈内存中以供我们访问

如果是基本数据类型,则按值访问,操作的就是变量保存的值;如果是引用类型的值,我们只是通过保存在变量中的引用类型的地址来操作实际对象

1552917261(1).png

对于基础数据类型来说:
a=1;
b=a;
b=2;
a=1;

上一篇下一篇

猜你喜欢

热点阅读