>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 재귀 함수 사용에 대한 자세한 설명

JavaScript의 재귀 함수 사용에 대한 자세한 설명

黄舟
黄舟원래의
2017-11-18 10:50:442333검색

이전 글에서 JavaScript재귀 함수를 분석했습니다. 그러면 JavaScript에서 재귀 함수를 어떻게 사용하는지 이해하셨을 거라 믿습니다. 오늘은 자바스크립트의 재귀함수 사용법에 대해 자세히 소개해드리겠습니다!

소위 재귀 함수란 이 함수를 함수 본문에서 호출하는 것입니다. 재귀 함수를 사용할 때는 주의하세요. 제대로 처리하지 않으면 무한 루프에 빠지게 됩니다. 재귀 함수는 계승 문제와 같은 특정 상황에서만 사용됩니다

10 이내에서 계승을 만들어 보겠습니다.

[모두 선택하려면 Ctrl+A 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.]

재귀 함수 호출에 대한 자세한 내용

JS 재귀 함수가 자신을 호출할 때의 보험 방법.
js 고급 프로그래밍에서
일반적인 계승 재귀 함수:

코드는 다음과 같습니다.

function fact(num){ 
if (num<=1){ return 1; 
}else{ 
return num*fact(num-1); 
} 
}

다음 코드는 오류를 일으킬 수 있습니다.

var anotherFact = fact; 
fact = null; 
alert(antherFact(4)); //出错

fact는 더 이상 함수가 아니기 때문에 오류가 발생합니다.
실행 중인 함수에 대한 포인터인args.callee를 사용하면 문제를 해결할 수 있습니다.
새 함수는 다음과 같습니다.

코드는 다음과 같습니다.

function fact(num){ 
if (num<=1){ 
return 1; 
}else{ 
return num*arguments.callee(num-1); //此处更改了。 
} 
} 
var anotherFact = fact; 
fact = null; 
alert(antherFact(4)); //结果为24.

JS의 일반 재귀 개선

재귀 함수는 아래와 같이 함수가 이름으로 자신을 호출할 때 형성됩니다.

코드는 다음과 같습니다.

function factorial(num) 
{ 
if(num<=1) 
{ 
return 1; 
} 
else 
{ 
return num * factorial(num-1); 
} 
}

이것은 고전적인 계승 함수입니다. 겉으로는 아무런 문제가 없어 보이지만, 다음 코드를 실행하면 문제가 발생할 수 있습니다.

var anotherFactorial = factorial; 
anotherFactorial(4); //输出 24 
factorial = null;

anotherFactory (4); //TypeError: object [object Window]의 'factorial' 속성은 chrome의 테스트 함수가 아닙니다
이유는 우리가 정의한 함수 이름이 실제로 함수에 대한 포인터이기 때문입니다. 이때 anotherFactorial이 정의되어 있고 해당 함수를 가리키므로 anotherFactorial(4)를 호출하면 24를 성공적으로 출력할 수 있습니다.
이때, 계승 = null이면 define function 실행 참조는 anotherFactorial(4)로 유지됩니다. ) 위와 같은 오류 메시지가 표시됩니다.
이때 인수.callee를 사용하여 함수 정의에서 팩토리얼을 대체할 수 있습니다.
함수 정의는 다음과 같습니다.

코드는 다음과 같습니다.

function factorial(num) 
{ 
if(num<=1) 
{ 
return 1; 
} 
else 
{ 
return num * arguments.callee(num-1); 
} 
}

그러면 위의 4줄의 테스트 코드를 사용하여 테스트 코드의 마지막 줄도 사용할 수 있습니다. 성공적인 출력 24.

요약:

위 글의 자세한 소개를 통해 친구들이 JavaScript의 재귀 함수 사용에 대해 더 잘 이해했다고 믿습니다. 작업에 도움이 되길 바랍니다! Related Related 권장 사항 :

JSST의 JavaScript ZavaScript 기능의 재귀 함수 분석 및 설명

JavaScript의 재귀 함수에 대한 이해와 샘플 코드 공유

위 내용은 JavaScript의 재귀 함수 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.