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

有没有童鞋遇到过同样的问题:JS中箭头函数中参数传递的问题

有没有童鞋遇到过同样的问题:JS中箭头函数中参数传递的问题

慕无忌1623718 2019-07-28 12:20:24
问题描述下面的代码输出2,如何传递参数才能在**调用函数**的时候输出**函数创建时**的rid值:1求除了使用不同变量名之外的其它解决方案,谢谢~相关代码varrid=1;varf1=(id=rid)=>{console.log(rid);}rid=2;f1();//输出2,如何能让输出f1函数创建时候的rid值:1下面是原始代码//获取任务列表varrid=this.getRid();action={rid:rid,action:'getTasks'}this.$store.state.ws.eventList[rid]=(d,id=rid)=>{vardata=d.data;if(data.length>0){for(variindata){this.$store.state.task.taskList.push(data[i]);}}deletethis.$store.state.ws.eventList[id];}this.$store.state.ws.websocket.send(JSON.stringify(action));//获取好友列表rid=this.getRid();action={rid:rid,action:'getFriends'}this.$store.state.ws.eventList[rid]=(d,id=rid)=>{vardata=d.data;if(data.length>0){for(variindata){data[i].nickname=data[i].nickname?data[i].nickname:data[i].number;data[i].initial=data[i].initial?data[i].initial:data[i].number.toString().substr(0,1);data[i].headerUrl=data[i].type===1?"http://p.qlogo.cn/gh/"+data[i].number+"/"+data[i].number+"/100/":"http://q.qlogo.cn/headimg_dl?bs=qq&dst_uin="+data[i].number+"&fid=blog&spec=100";this.$store.state.allContacts.push(data[i]);}}deletethis.$store.state.ws.eventList[id];}this.$store.state.ws.websocket.send(JSON.stringify(action));
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

varrid=1;
varf1=(id=rid)=>{
console.log(rid);
rid=2;
}
f1();
把rid的赋值放函数里面,既不耽误赋值,输出还是1,是这样吗?
                            
查看完整回答
反对 回复 2019-07-28
?
森栏

TA贡献1810条经验 获得超5个赞

解决方法不是很简单码,拷贝一份rid即可
varrid=1;
varbaseRid=rid;
varf1=(id=baseRid)=>{
console.log(id,baseRid);
};
rid=2;
f1();
                            
查看完整回答
反对 回复 2019-07-28
  • 2 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

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