js函数问题

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);
慕妹3146593
浏览 319回答 2
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);

米脂

函数也是对象,对象是引用数据类型,在赋值的时候传递的是引用值,相当于地址。varres=fn;//把函数的引用指向res变量//提问中varres=fn(ary)//fn(ary)相当一个表达式,求出结果后赋给res//所以res指向的应该是return语句返回的数组ary的引用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript