求問box函數里返回的是sumF函數,而我并沒有聲明sumF,并且調用sum函數,執行后返回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) 肯定是執行第一個函數,結果是sunmF(10);這個時候沒有玩,肯定還要執行sunmF函數,結果就是10+10=20;
2016-11-25
sum函數被當作參數傳入到sumF函數,然后sumF內的函數體實際上變為:return sum(num);num為10,返回值自然為20;
2016-11-25
?var?result?=?box(sum,?10);你傳入參數的時候,傳入了一個函數名sum,它就會當成變量傳入你的box函數中,然后執行sumF(num);也就是執行sum(10);最后結果就是10+10=20;