赋值的引用类型改变了为什么自己没跟着改变?

赋值的引用类型改变了为什么自己没跟着改变?

老师,在视频课程中,xm是引用类型并把自己的值赋值给了xh,xh改变时xm跟着改变
http://img1.sycdn.imooc.com//climg/5e3f88eb0814fa4810010791.jpg
在这道选择题中,b被赋值的值a是一个引用类型,按理说a改变了b也应该改变啊,为什么b没被改变?
http://img1.sycdn.imooc.com//climg/5e3f88ea08aeca2410010319.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2020-02-24 14:18:04

@“慕瓜9075555”同学你好, 不是很清除同学具体指的是哪里呢?

一开始是将a的值赋值给b, 导致b此时的值为[4],重新给a赋值[4, 44]之后,a和b之间就没有关系了,此时a不会影响b之前的值,所以页面中输出b的值为[4]。

执行a = b这句代码后,将b的值赋值给a, 也就是说a和b此时指向同一个引用地址,b的值发生改变,a的值也会相应的跟着发生改变,那么执行完b.push(44)这句话之后,b的值为[4, 44], 即a的值也为[4, 44]所以页面中最后输出a的值为[4, 44]。

同学可以结合上述解析,自己动手写一写代码,帮助自己更好的理解。

祝学习愉快~


好帮手慕慕子 2020-02-09 14:36:27

同学你好,如下所示a赋值给b之后,a又被重新赋值了,此时a和b没有任何关系了。所以打印b的值是[4],

后面将b的值赋值给a,修改b的值确实会改变a的值,所以执行b.push(44)后,输出a的值为[4, 44]

http://img1.sycdn.imooc.com//climg/5e3fa7ba0983e80207000304.jpg

同学可以试着理解下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 为什么b不影响a,a能影响b
    2020-02-24 13:04:17
  • 10 11行代码表示他们指向了同一个引用地址,所以打印出来b是[4]. 如果a=[4,44]在]var b=a前面就,打印的b就是[4.44]
    2020-02-25 16:34:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师