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

在线等!这个函数要怎么分析?各位有什么建议?

在线等!这个函数要怎么分析?各位有什么建议?

慕的地6264312 2019-11-02 13:53:34
不懂这是什么形式varfunc=(function(a){this.a=a;returnfunction(a){a+=this.a;returna;}})(function(a,b){returna;}(1,2))func(4)//?
查看完整描述

2 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

varfunc=(function(a){
this.a=a;
returnfunction(a){
a+=this.a;
returna;
}
})(function(a,b){
returna;
}(1,2))
func(4)//?
///先将这个自动调用函数作为参数传递,这个函数返回传入的第一个参数a,这里就是返回1
function(a,b){
returna;
}(1,2)
(function(a){
this.a=a;
//当上一次调用时把传入的1赋值给了this.a,
//随即返回了一个回调函数提供给func(4)调用,因为func传入了4,
//4和上一次调用的this.a=1,计算,返回结果5
returnfunction(a){
a+=this.a;
returna;
}
})(function(a,b){
returna;
}(1,2))
func(4);
                            
查看完整回答
反对 回复 2019-11-02
?
桃花长相依

TA贡献1860条经验 获得超8个赞

(func{}())这种形式是立即执行func函数
所以你写的这个可以简化成
varfunc=(function(a){
this.a=a;
returnfunction(a){
a+=this.a;
returna;
}
})(1)
再简化
varfunc=function(a){
a+=1;
returna;
}
所以func(4)//4+1->5
抛开是某些沙雕写出来测验的题目以外,平时写这种代码没见过。
少看骚操作代码,从我做起。
                            
查看完整回答
反对 回复 2019-11-02
  • 2 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号