为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 深拷贝问题

JavaScript 深拷贝问题

慕尼黑8549860 2018-11-06 13:17:46
本人初学者,在学习的过程中遇到了一个深拷贝相关的问题,JS代码如下:并没有想我预期的那样成功深拷贝了每一个对象,从输出值可以看出两个对象数组之间还是存在联系,我试过使用jQuery的extend方法深拷贝一个对象字面量形式存放的对象数组,如:[{    name: "bill",    age: 19}, {    name: "tom",    age: 20}]在这种情况下修改personArr中的对象属性,allPerson不会随之变化,我很疑惑,出现这种情况的原因是什么?该如何解决?经过下午的尝试我猜测问题是在temp = new Person(data[i]);这一步上,是不是new的对象可能只是一个指向目标对象的指针?求高人指点
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

看了下jquery.extend源码


https://img1.sycdn.imooc.com//5c0f68e50001a81907080624.jpg

可以发现在判断 jquery.isPlainObject(copy)时为false;
即personArr[0]不是一个纯粹的对象(即字面量或者构造函数为Object)
这时候执行的是

target[ name ] = copy;

即为对象的引用


查看完整回答
反对 回复 2018-12-11
  • 1 回答
  • 0 关注
  • 580 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号