JS对象浅拷贝与深拷贝问题实践

今天写代码发现想把一个对象赋给自己新建的对象,给新对象再添加一个属性时,旧的对象也具有了这个属性,我意识到这是浅拷贝与深拷贝的问题了,只不过之前一直没实际遇到过这个问题。现在把经验总结一下:

旧对象A:

 

pageCount:10
pageNo:"1"
sessionId:"C6B1F6B4E84192F17B0BAD6EF389C039"
sourceType:2
tradeTime:1


进行如下操作:

 

 

var requestdata = $scope.conditions.request;
requestdata.pluginId = data.pluginId;


旧对象A变成了:

 

 

pageCount:10
pageNo:"1"
pluginId:27
sessionId:"C6B1F6B4E84192F17B0BAD6EF389C039"
sourceType:2
tradeTime:1


这不是我们想要的结果,A不应该被改变,所以我们要进行深拷贝,深拷贝方法有很多,我只用了angualr的一个API:

 

 

var requestdata = angular.copy($scope.conditions.request);//angular.copy();可进行深拷贝
requestdata.pluginId = data.pluginId;


如此操作后,旧对象A就不会被改变了,亲测有效。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值