JavaScript 的 Array 无法清空的奇怪问题

clear=function(ary){
ary=[];
};
a=[1,2,3];
clear(a);
console.log(a);
在调用clear(a)的时候,不是已经把进行了赋值a=[]?
为什么console.log(a)还是输出[1,2,3]?
qq_遁去的一_1
浏览 588回答 2
2回答

白衣染霜花

清空函数体用ary.length=0,手机不方便,过会给你解释原因。原因来了:传参时,ary是[1,2,3]的引用(类似于指针);改变ary的内容会反映到外面,如arr.push(4);但是直接覆盖ary为[]则相当于ary指向新的对象,不再指向原来的[1,2,3],但是[1,2,3]还在那,即你没有对其做任何改动.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript