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

Document
叮当猫咪
浏览 650回答 2
2回答

GCT1015

记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

九州编程

很显然是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);这要再看不懂,你就要好好学习下基础了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript