我看不到这个递归函数是如何工作的:
function f(n) { g(n-1) }
function g(n) {
alert("before: " + n);
if(n > 0) f(n);
alert("after: " + n);
}
f(2);
我试图理解这段代码的工作原理,我看到了“1 之前”、“0 之前”和“0 之后”是如何执行的,但是......“1 之后”是如何产生的?
我看到它是这样执行的...... f(2) 调用 g 减去 1,所以 'n' 变为 1。 Alert("before: " + n) 被执行,1 大于 0,所以它会调用自己并减去 1 .alert("before:" + n) 再次执行,0不大于0所以会执行Alert("after:" + n) 函数结束?...
编辑:感谢@FlorianMargaine 和@Cyrille 帮助我理解这背后的逻辑。=)