我猜它停止由达夫代码浏览器越来越钉所有的时间,但这样的:JavaScript中递归的限制是多少?
function print(item) {
document.getElementById('output').innerHTML =
document.getElementById('output').innerHTML
+ item + '<br />';
}
function recur(myInt) {
print(myInt);
if (int < 10) {
for (i = 0; i <= 1; i++) {
recur(myInt+1);
}
}
}
生产:
0
1
2
3
4
5
6
7
8
9
10
10
,而不是大的老惹我得到当我这样做:
function recur(myInt) {
print(myInt);
if (int < 10) {
for (i = 0; i <= 1; i++) {
var x = myInt + 1;
setTimeout("recur("+x+")");
}
}
}
我错过了什么,或者这是如何做JS递归?我有兴趣使用递归来导航树,您需要为每个孩子调用方法。
'如果(int <10)'会失败if块并停止递归。这是任何语言的预期行为。 – jiggy
请避免命名变量“int”。虽然它在js中可能是合法的,但这是令人困惑的,因为它是许多其他语言中的保留字。 –
该方法的两个版本应该返回相同的代码,然后他们不会第二个产生大量的数字,因为我期望该方法自动调用两次。对于(i = 0; i <= 1; i ++), – gordatron