이전 글에서 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의 재귀 함수 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!