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

vara=[1];functionf(a){a[100]=3;a=[1,2,3];}f(a)console.log(a);


aluckdog
浏览 291回答 2
2回答

宝慕林4294392

这是面向对象和形参的问题啦,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(),结果就会和你期待的一样了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript