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

萌新求教!请指教下为啥输出的不是[1,2,3]

萌新求教!请指教下为啥输出的不是[1,2,3]

aluckdog 2019-12-16 14:12:52
vara=[1];functionf(a){a[100]=3;a=[1,2,3];}f(a)console.log(a);
查看完整描述

2 回答

?
宝慕林4294392

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

这是面向对象和形参的问题啦,js里的数组也是对象。一步一步的看:vara=[1]//a指向objectX,objectX的内容是`[1]`functionf(a){//这里的a是形参,你把它换成b也没什么不同,b也指向objectX,objectX的内容是`[1]`a[100]=3//b还指向objectX,objectX的内容变成了`[1,...,3]`a=[1,2,3]//b指向了objectY了,objectY的内容是`[1,2,3]`}f(a)console.log(a)//a指的还是objectX如果你把fn(a)换成fn(),结果就会和你期待的一样了。


查看完整回答
反对 回复 2019-12-17
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信