var x=(n == 1 ? n : n * factorial(n - 1));
當 n=1 時終止呼叫 factorial ,才會繼續以下程式
console.log(n + ">" + x);
return x
我用比較白話的說法。
因為你是 54321 的丟進去。依後來先吐的道理。自然就是從 12345吐回了。
這樣是否能明白??
如果不懂就不要偷懶,把運行過程一行一行寫下來
一) f(5)
一) 印出 5
一) x = 5 * f(4)
二) 印出 4
二) x = 4 * f(3)
三) 印出 3
三) x = 3 * f(2)
四) 印出 2
四) x = 2 * f(1)
五) 印出 1
五) x = 1
五) 印出 1>1
五) 返回 1
四) 印出2>2
四) 返回2
三) 印出3>6
三) 返回6
二) 印出4>24
二) 返回24
一) 印出5>120
一) 返回120
遞迴是一層一層進入再一層一層出來。括弧前是層數。