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

怎么解决修改一个值为对象的属性时出现的奇葩现象??

怎么解决修改一个值为对象的属性时出现的奇葩现象??

茅侃侃 2018-08-30 14:13:27
第一种情况(保存引用至变量a,在修改变量a的值):var obj = [            {               name:                      {                       test: 'nihao'                     }            }          ];          // 未修改的对象console.log('原始对象:' , JSON.parse(JSON.stringify(obj)));// 保存引用var data = obj[0]['name'];// 修改data = 'hello'; // 修改不会作用到对象 obj !!console.log('修改name属性后的对象:' , JSON.parse(JSON.stringify(obj)));上面代码执行结果预览:第二种情况(不保存引用,直接修改):var obj = [            {               name:                      {                       test: 'nihao'                     }            }          ];// 未修改的对象console.log('原始对象:' , JSON.parse(JSON.stringify(obj)));// 不保存引用后修改,即直接修改obj[0]['name'] = 'hello'; // 能够作用到对象 Obj!!console.log('修改name属性后的对象:' , JSON.parse(JSON.stringify(obj)));上面代码运行结果预览:为什么会出现如此奇葩的现象??我实在不太明白....,求解惑
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

data直接被赋值为hello了,和obj[0]['name']无关


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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