有大佬遇到过这个问题吗:这个函数要怎么分析?

不懂这是什么形式
varfunc=(function(a){
this.a=a;
returnfunction(a){
a+=this.a;
returna;
}
})(function(a,b){
returna;
}(1,2))
func(4)//?
哈士奇WWW
浏览 322回答 2
2回答

慕姐8265434

varfunc=(function(a){this.a=a;returnfunction(a){a+=this.a;returna;}})(function(a,b){returna;}(1,2))func(4)//?///先将这个自动调用函数作为参数传递,这个函数返回传入的第一个参数a,这里就是返回1function(a,b){returna;}(1,2)(function(a){this.a=a;//当上一次调用时把传入的1赋值给了this.a,//随即返回了一个回调函数提供给func(4)调用,因为func传入了4,//4和上一次调用的this.a=1,计算,返回结果5returnfunction(a){a+=this.a;returna;}})(function(a,b){returna;}(1,2))func(4);

繁花不似锦

(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抛开是某些沙雕写出来测验的题目以外,平时写这种代码没见过。少看骚操作代码,从我做起。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript