深拷贝和浅拷贝的区别

Posted lml-lml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝和浅拷贝的区别相关的知识,希望对你有一定的参考价值。

深拷贝和浅拷贝的区别

用自己的语言描述就是 是不是真正获取了一个对象复制的实体,而不是引用
假设现在有俩个数组A 和B

var a = {
    myname: ‘yana‘
};
var b = a;
b.myname = ‘小雅‘;
console.log(b.myname);    // 小雅
console.log(a.myname);    // 小雅


var a = [‘myname‘, ‘yana‘];
var b = a;
b[1] = ‘小雅‘;
console.log(a);    // ["myname", "小雅"]
console.log(b);    // ["myname", "小雅"]

可以看出,对于对象或者数组类型,我们将a赋值给b,然后更改b中的属性,a也会随着变化,也就是其实这俩指向了同一块内存,所以修改其任意的值,另一个值都会随之变化,这就是浅拷贝。。
说明浅拷贝,拿人手短

刚刚我们了解了什么是浅拷贝,那么相应的,如果给b放到新的内存中,将a的各个属性都复制到新的内存中,就是深拷贝,也就是说,当b中的属性变化的时候,a的属性不会发生变化。自食其力。



以上是关于深拷贝和浅拷贝的区别的主要内容,如果未能解决你的问题,请参考以下文章

深拷贝和浅拷贝的区别 & 如何实现深拷贝和浅拷贝

深拷贝和浅拷贝有啥区别?

深拷贝和浅拷贝的区别

python深拷贝和浅拷贝的区别

深拷贝和浅拷贝怎样理解(通俗具体点儿)

python深拷贝和浅拷贝的区别