码迷,mamicode.com
首页 > 其他好文 > 详细

深拷贝和浅拷贝的区别

时间:2018-09-03 19:33:38      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:现在   另一个   修改   OLE   code   引用   的区别   复制   深拷贝   

深拷贝和浅拷贝的区别

用自己的语言描述就是 是不是真正获取了一个对象复制的实体,而不是引用
假设现在有俩个数组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的属性不会发生变化。自食其力。

深拷贝和浅拷贝的区别

标签:现在   另一个   修改   OLE   code   引用   的区别   复制   深拷贝   

原文地址:https://www.cnblogs.com/lml-lml/p/9580081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!