https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions#遞歸(Recursion)
1、What
調(diào)用自身的函數(shù)我們稱之為遞歸函數(shù)(recursive function)。
在某種意義上說型宙,遞歸近似于循環(huán)。兩者都重復執(zhí)行相同的代碼埂陆,并且兩者都需要一個終止條件(避免無限循環(huán)或者無限遞歸)。
var foo = function bar() {
// statements go here
};```
在這個函數(shù)體內(nèi)娃豹,以下的語句是等價的:
bar()
arguments.callee()
foo()
2、How
例1:
var x = 0;
while (x < 10) { // "x < 10" 是循環(huán)條件
// do stuff
x++;
}```
function loop(x) {
if (x >= 10) // "x >= 10" 是退出條件(等同于 "!(x < 10)")
return;
// 做些什么
loop(x + 1); // 遞歸調(diào)用
}
loop(0);```