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

题目描述

var a = [1,2,3];
var b = a;
a = [4,5,6];
alert(b);  //[1,2,3]var a = [1,2,3];
var b = 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();

早上在知乎翻到的 看了他们的答案还是有点蒙蔽 有点蒙蔽 大佬能不能简明扼要的解答下 
我有点菜 望不吝赐教


慕姐4208626
浏览 402回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP