求問box函數(shù)里返回的是sumF函數(shù),而我并沒有聲明sumF,并且調(diào)用sum函數(shù),執(zhí)行后返回20,求告知為什么返回的是sum方法返回的值
?function?box(sumF,?num)?{ ??????return?sumF(num); ??????????????} ????????????function?sum(num)?{ return?num?+?10; ??????????} ???????var?result?=?box(sum,?10); ???????alert(result);
2016-11-25
box(sum,10) 肯定是執(zhí)行第一個(gè)函數(shù),結(jié)果是sunmF(10);這個(gè)時(shí)候沒有玩,肯定還要執(zhí)行sunmF函數(shù),結(jié)果就是10+10=20;
2016-11-25
sum函數(shù)被當(dāng)作參數(shù)傳入到sumF函數(shù),然后sumF內(nèi)的函數(shù)體實(shí)際上變?yōu)椋簉eturn sum(num);num為10,返回值自然為20;
2016-11-25
?var?result?=?box(sum,?10);你傳入?yún)?shù)的時(shí)候,傳入了一個(gè)函數(shù)名sum,它就會當(dāng)成變量傳入你的box函數(shù)中,然后執(zhí)行sumF(num);也就是執(zhí)行sum(10);最后結(jié)果就是10+10=20;