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);

米脂
TA贡献1836条经验 获得超3个赞
函数也是对象,对象是引用数据类型,在赋值的时候传递的是引用值,相当于地址。varres=fn;//把函数的引用指向res变量//提问中varres=fn(ary)//fn(ary)相当一个表达式,求出结果后赋给res//所以res指向的应该是return语句返回的数组ary的引用
添加回答
举报
0/150
提交
取消