猿问

js 数组赋值问题 :值传递还是引用?

题目描述
vara=[1,2,3];
varb=a;
a=[4,5,6];
alert(b);//[1,2,3]
vara=[1,2,3];
varb=a;
a.pop();
alert(b);//[1,2]
//第一个我懂第二个我不懂
题目来源
知乎
这是一个人回答的
a=[4,5,6];//改变的是a引用本身,没有改变数组对象
a.pop();//改变的是数组对象,a引用没有改变。
b=a;//该操作后,b直接指向数组对象,不是b指向a,a再指向数组。
//所以改变a引用并不会对b引用造成影响,改变数组对象可以
但是我觉得说不通啊我觉得应该是这个执行顺序啊但是从结果看我是错的~~
a=[4,5,6];//改变的是a引用本身,没有改变数组对象
b=a;//这边还是指向引用
a.pop();
早上在知乎翻到的看了他们的答案还是有点蒙蔽有点蒙蔽大佬能不能简明扼要的解答下我有点菜望不吝赐教
狐的传说
浏览 877回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答