有人可以向我解釋爲什麼從下面的遞歸函數的最終返回值是正確的?JavaScript函數'返回'值?
function(factorial) {
if (n == 0)
return 1;
return n * factorial (n -1);
}
我瞭解遞歸,但我不明白爲什麼返回值,而不是僅僅1的正確結果,..如果我改變返回2,那麼它只是雙打階乘的結果。所以看起來,無論我在這個迴歸表達式中的任何價值成爲階乘函數累積結果的乘數,爲什麼這樣呢?階乘函數的積累結果如何存儲?所有回覆讚賞
從您的評論看來,你真的不明白遞歸。認真思考。如果你輸入'3',會發生什麼? (提示:它會返回3 * 2 * 1,因爲它是返回3 *因子(2),它是'返回3 *(2 *因子(1))' – slebetman