不懂这是什么形式varfunc=(function(a){this.a=a;returnfunction(a){a+=this.a;returna;}})(function(a,b){returna;}(1,2))func(4)//?
2 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
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);
繁花不似锦
TA贡献1851条经验 获得超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抛开是某些沙雕写出来测验的题目以外,平时写这种代码没见过。少看骚操作代码,从我做起。
添加回答
举报
0/150
提交
取消