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

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

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

慕妹3242003 2019-04-16 17:05:54
clear=function(ary){ary=[];};a=[1,2,3];clear(a);console.log(a);在调用clear(a)的时候,不是已经把进行了赋值a=[]?为什么console.log(a)还是输出[1,2,3]?
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号