浅拷贝、深拷贝

在项目中我们经常要处理数据,概括就四个字:增删改查,
我们“增删改查”操作数据其实也就操作内存数据,经常会各种变量互相赋值
那么问题来了,如果是普通的赋值其实也就是简单的浅拷贝数据,
浅拷贝容易被影响数据,深拷贝则不一样。
 
以下一个小例子:
 
为什么b数组删除一个下标,a数组也会被影响呢?

 

这里就涉及到浅拷贝、深拷贝

 

b数组的内容来自于a数组

如果a直接赋值b那么属于浅拷贝,

虽然它们变量名不一样但内存地址是一样的,

如果某一个变量改变了该内存值,那么其他变量也会受影响

 

解决方法是用深拷贝,深拷贝直接在内存新建值不受其他变量影响

 

 这里要说说浅拷贝、深拷贝的区别,

 浅拷贝:虽然变量名不一样,但实际指向内存地址是一样的

深拷贝:直接在内存新建一份值内存地址也就不一样了

 

 另外JQ的$.extend()方法,等有空也说说自己看法。

 

其实网上很多技术文章,大神们写得比我好多,但为什么我还是要自己写文章呢?

其实是想从自己角度表达技术的看法。

 

文笔有限,写这文章目的主要是随笔给自己一个笔记。

 

转载于:https://www.cnblogs.com/konghaowei/p/8573729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值