この再帰関数がどのように機能するかわかりません:
function f(n) { g(n-1) }
function g(n) {
alert("before: " + n);
if(n > 0) f(n);
alert("after: " + n);
}
f(2);
私はこのコードが機能することを理解しようとしましたが、「before 1」、「before 0」、および「after 0」がどのように実行されるかを見ましたが、「after 1」はどのようにこれから発生するのでしょうか?
私はそれがこのように実行されているのを見ます... f(2) は 1 を減算する g を呼び出すので、'n' は 1 になります。 . Alert("before:" + n) がもう一度実行され、0 は 0 より大きくないため、Alert("after:" + n) が実行され、関数は終了しますか?...
編集: @FlorianMargaine と @Cyrille に、この背後にあるロジックを理解するのを手伝ってくれてありがとう。=)