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

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

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

慕无忌1623718 2019-10-31 09:34:16
vara=[1];functionf(a){a[100]=3;a=[1,2,3];}f(a)console.log(a);
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

这是面向对象和形参的问题啦,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-10-31
  • 2 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

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