为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2019-04-07 11:19:25
clear=function(ary){ary=[];};a=[1,2,3];clear(a);console.log(a);在调用clear(a)的时候,不是已经把进行了赋值a=[]?为什么console.log(a)还是输出[1,2,3]?
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

清空函数体用ary.length=0,手机不方便,过会给你解释原因。
原因来了:
传参时,ary是[1,2,3]的引用(类似于指针);
改变ary的内容会反映到外面,如arr.push(4);
但是直接覆盖ary为[]则相当于ary指向新的对象,不再指向原来的[1,2,3],但是[1,2,3]还在那,即你没有对其做任何改动.
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信