老师,有一个问题

老师,有一个问题

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

var a=[4];

var b=a;

a=[4,44]

document.write(b)

这个时候b不应该是[4,44]吗,a和b指向同一个引用,a发生改变,b也应该变啊,为什么b是[4]???

 

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

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

1回答
guly 2020-03-18 09:51:53

你好,

a = [4,44];的时候,a指向了另一块存储了[4,44]的堆空间,而不再是原来存储着[4]的堆空间。

也就是说,a的地址改变了,b=a 时a=[4],地址并没有变化,所以b=4;如果解决您的问题请采纳,祝学习愉快!


  • 提问者 慕斯卡8226687 #1
    老师, b=a时,a是不是===b,如果a和b地址是相同的,a里的值改变了,b也改变了吧??我不太理解老师说的,可以再解释一下吗??
    2020-03-18 20:12:51
  • guly 回复 提问者 慕斯卡8226687 #2
    你好,b=a的意思是把a赋值给b,举个例子就是b=1的意思就是把1这个值赋予给a,1的值既不会变化也不会改变地址。想要变化a的地址应该用指针变量,b=&a;如果解决了您的问题请采纳,祝学习愉快!
    2020-03-19 10:36:09
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

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

在线咨询

领取优惠

免费试听

领取大纲

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