我想使用非递归方法重复调用一个函数。我有一个非递归方法,下面的例子:在javascript中使用函数堆栈调用非递归方法
function foo(i) {
if (i < 0)
return;
console.log('begin:' + i);
foo(i - 1);
console.log('end:' + i);
}
foo(3);
<!-- this is to make console output visible -->
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
,它提供了以下的输出:
begin:3
begin:2
begin:1
begin:0
end:0
end:1
end:2
end:3
任何人可以让我明白为什么它打印以下几行:
end:0
end:1
end:2
end:3
Ev从函数foo(i - 1);
返回
这是一个递归函数............... –
你为什么认为它是非递归的? – hindmost
https://developer.mozilla。org/en-US/docs/Web/JavaScript/Guide/Functions –