var a=[1,2,3];
var b=a;
b.push(4);
alert(a);//结果为[1,2,3,4] 当b改变的时候a也发生了改变
请指教这是为什么啊
var a=[1,2,3];
var b=a;
b.push(4);
alert(a);//结果为[1,2,3,4] 当b改变的时候a也发生了改变
请指教这是为什么啊
a 把 [1,2,3] 装入箱子埋到地下,记录了位置坐标。
a 把位置告诉了 b
b 沿着坐标找到了箱子,打开放入 4
a 又回来打开箱子清点了一番,[1,2,3,4] 告知 alert
JavaScript (目前)有六大 primitive 类型,null、undefined、boolean、number、string、symbol,除此以外都是按照上面的方式传值,即传引用。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
因为在
js
中,对象和数组都是引用传递,所谓引用传递就是当变量b
赋值为数组a
后,a
和b
便指向了同一个地址,这个地址的值便是[1, 2, 3]
这个数组,所以当修改b
,也就是修改了b
指向地址的数组,而a
也指向这个数组,所以a
的值也会跟着变化具体请参考: