问题描述
下面的代码输出2,如何传递参数才能在**调用函数**的时候输出**函数创建时**的rid值: 1
求除了使用不同变量名之外的其它解决方案,谢谢~
相关代码
var rid = 1;
var f1 = (id = rid) => {
console.log(rid);
}
rid = 2;
f1(); //输出2, 如何能让输出f1函数创建时候的rid值: 1
下面是原始代码
//获取任务列表
var rid = this.getRid();
action = {
rid: rid,
action : 'getTasks'
}
this.$store.state.ws.eventList[rid] = (d, id=rid) => {
var data = d.data;
if(data.length > 0){
for(var i in data){
this.$store.state.task.taskList.push(data[i]);
}
}
delete this.$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) => {
var data = d.data;
if(data.length > 0){
for(var i in data){
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]);
}
}
delete this.$store.state.ws.eventList[id];
}
this.$store.state.ws.websocket.send(JSON.stringify(action));