https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions#递归(Recursion)
1、What
调用自身的函数我们称之为递归函数(recursive function)。
在某种意义上说,递归近似于循环。两者都重复执行相同的代码,并且两者都需要一个终止条件(避免无限循环或者无限递归)。
var foo = function bar() {
// statements go here
};```
在这个函数体内,以下的语句是等价的:
bar()
arguments.callee()
foo()
2、How
例1:
var x = 0;
while (x < 10) { // "x < 10" 是循环条件
// do stuff
x++;
}```
function loop(x) {
if (x >= 10) // "x >= 10" 是退出条件(等同于 "!(x < 10)")
return;
// 做些什么
loop(x + 1); // 递归调用
}
loop(0);```