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=areturnfunction(b){returnthis.a+b}}letargA=function(a,b){returnadebugger}(1,2)//实际上argA就等于1,**这个地方的b没有被用到**则原式简化成:lettest=functionA(argA)此句执行完后test实为function(b){returnthis.a+b}//**这是一个带一个参数的函数,执行test(4)时b就是4**且此时this.a等于1。因此test(4)结果为5
九州编程
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);这要再看不懂,你就要好好学习下基础了
添加回答
举报
0/150
提交
取消