我想使用非遞歸方法重複調用一個函數。我有一個非遞歸方法,下面的例子:在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 –