자바스크립트 재귀함수

주니·2021년 12월 14일
1

js문법

목록 보기
2/3

자바스크립트로 재귀함수를 구현하려면 어떻게 해야 할까?

function A(){
	A()
    }
A();

이런 방식도 물론 가능하겠지만 실행되는 브라우저의 스택이 가득차게 되면 사용할 수 없다는 단점이 존재한다. 물론 다른 언어들이 실행되는 환경에서도 메모리스택이 가득 찬다면 재귀함수가 멈추는건 당연하지만 말이다.

그렇다면 계속 재귀함수를 실행하고 싶을때는 어떻게 해야될까?
간단한 꼼수는 아래와 같이 하면된다.

function A(){
	setTimeout(()=>{A()},0);
    }
A();

자바스크립트의 동작원리를 안다면 쉽게 이해할 수 있을 것이다. 스택이 비면 큐에서 대기하는 함수들이 스택으로 올라간다는 점을 활용한 것이다.

profile
달팽이처럼

0개의 댓글