3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
function box(num){
if(num <= 1)
return 1;
else
return num * box(num - 1);
}
alert(box(4));
我跟你說一下這個(gè)function 是這么運(yùn)行的吧
首先會(huì)執(zhí)行這句alert(box(4));調(diào)用box方法,傳人4;然后判斷 4 <= 1 不成立,走 else 也就是 4*box(4 -1 ); 然后在執(zhí)行 box(num)方法 ,傳人 3;然后判斷 3 <= 1 不成立,走else 也就是 3 * box(3-1) ;我不知道這里你有沒有這個(gè)概念,運(yùn)算是從左到右,也就是說,現(xiàn)在 是 4*3*box(3-1)
下面類推,當(dāng) return 4*3*2*box(2-1);時(shí),也就 num<= 1 成立時(shí),return 1;返回1;也就是遞歸結(jié)束了,那么,現(xiàn)在 alert(box(4)); 其實(shí)就是 alert(4*3*2*1);我這樣說,不知道你懂沒懂

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
function box(num) { if (num <= 1) { // 如果當(dāng)前num值小于等于1 return 1; // 函數(shù)返回值是1 } else { // 如果當(dāng)前num值大于1 return num * box(num-1); // 返回值是當(dāng)前的num值乘以【box(當(dāng)前的num值-1)這個(gè)函數(shù)調(diào)用后的返回值】 } } alert(box(4)); |
首先box是一個(gè)函數(shù)名,num是函數(shù)的參數(shù)。
box(4)就是調(diào)用box函數(shù),并且傳遞的參數(shù)值是4。即num值被賦值為4。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
box(1)=1;
box(2)=2*box(1)=2*1
box(3)=3*box(2)=3*2*1
box(4)=4*box(3)=4*3*2*1
添加回答
舉報(bào)