深拷贝和浅拷贝

2018-03-30  本文已影响0人  是刘快啊

var a=1;
var b=a;
b=2; //这时候改变b
a不受b的影响,
那么我们就说这是一个深复制。
对于简单类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要分浅拷贝和深拷贝。

这是一个浅拷贝的例子:
var a={name: 'luke'};
var b=a;
b.name='b';
a.name === 'b' //true
我们对b操作后,a也变了。

深拷贝,就是对Heap内存进行完全的拷贝:
var a={name: 'luke'};
var b=deepClone(a) //深拷贝
b.name='b';
a.name ==='a' //true
对b操作后,a不变。

上一篇 下一篇

猜你喜欢

热点阅读