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

js函数问题

js函数问题

慕妹3146593 2019-05-21 09:53:08
varary=[1,2,3,4];functionfn(ary){ary[0]=0;ary=[0];ary[0]=100;returnary;}varres=fn(ary);//请问当把函数给res的时候开辟新空间了吗?还是指向函数定义时的那个空间?console.log(ary);console.log(res);
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

varary=[1,2,3,4];
functionfn(ary){
ary[0]=0;//操作引用
ary=[0];//指向新对象
ary[0]=100;//修改新对象
returnary;
}
varres=fn(ary);//请问当把函数给res的时候开辟新空间了吗?还是指向函数定义时的那个空间?
console.log(ary);//传递了引用
console.log(res);
                            
查看完整回答
反对 回复 2019-05-21
?
米脂

TA贡献1836条经验 获得超3个赞

函数也是对象,对象是引用数据类型,在赋值的时候传递的是引用值,相当于地址。
varres=fn;//把函数的引用指向res变量
//提问中
varres=fn(ary)//fn(ary)相当一个表达式,求出结果后赋给res
//所以res指向的应该是return语句返回的数组ary的引用
                            
查看完整回答
反对 回复 2019-05-21
  • 2 回答
  • 0 关注
  • 318 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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