나는 브라우저 푸딩 코드에 의해 모든 시간을 못을 박았다지고 중지의 추측하지만,이 :자바 스크립트에서 재귀가 얼마나 제한적입니까?
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에서 재귀를 수행하는 방법입니까? 각 자식에 대해 메서드를 호출해야하는 재귀를 사용하여 트리를 탐색하는 데 관심이 있습니다.
'if (int <10)'는 if 블록을 실패하고 재귀를 중지합니다. 그것이 모든 언어에서 예상되는 행동입니다. – jiggy
변수 이름을 "int"로 지정하지 마십시오. js에서는 합법적 일 수 있지만 다른 많은 언어에서는 예약어이기 때문에 혼란 스럽습니다. –
두 가지 버전의 메서드는 동일한 코드를 반환해야합니다. 두 번째 버전에서는 메서드 자체가 두 번 호출 될 것으로 예상하므로 많은 양의 숫자를 생성하지 않습니다. – gordatron