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

求解js 的问题 为什么结果是5? 分析一下

求解js 的问题 为什么结果是5? 分析一下

叮当猫咪 2019-05-25 17:16:55
Documentvartest=(function(a){this.a=a;returnfunction(b){returnthis.a+b;}}(function(a,b){returna;debugger;}(1,2)));console.log(test(4))//结果是输出5求解?
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

letfunctionA=function(a){
this.a=a
returnfunction(b){
returnthis.a+b
}
}
letargA=function(a,b){
returna
debugger
}(1,2)
//实际上argA就等于1,**这个地方的b没有被用到**
则原式简化成:
lettest=functionA(argA)
此句执行完后test实为
function(b){
returnthis.a+b
}
//**这是一个带一个参数的函数,执行test(4)时b就是4**
且此时this.a等于1。因此test(4)结果为5
                            
查看完整回答
反对 回复 2019-05-25
?
九州编程

TA贡献1785条经验 获得超4个赞

很显然是5啊
vartest=function(a){
this.a=a;
returnfunction(b){
returnthis.a+b;
}
}(function(a,b){
returna;
}(1,2))
分解
vartest=function(a){
this.a=a;
returnfunction(b){
returnthis.a+b;
}
}
vargetA=function(a,b){
returna;
}
test(getA(1,2))(4);
这要再看不懂,你就要好好学习下基础了
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 649 浏览
慕课专栏
更多

添加回答

举报

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