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(),结果就会和你期待的一样了。
添加回答
举报
0/150
提交
取消