closure debug

클로저 디버깅 질문 순서

변수가 예상과 다르게 유지되거나 사라질 때는 호출 순서보다 환경 연결과 참조 생존 여부를 먼저 분리합니다.

1 call stack

언제 호출됐나

함수 호출마다 새 실행 컨텍스트가 생기고 끝나면 스택에서 제거됩니다.

2 범위

어디서 선언됐나

변수 검색은 함수가 선언된 렉시컬 환경의 바깥 연결을 따라갑니다.

3 reference

클로저 포획 대상

반환된 함수가 읽는 외부 변수는 필요한 만큼 클로저 환경에 남습니다.

4 lifetime

언제 해제되나

참조하는 함수가 더 이상 필요 없을 때 외부 환경도 회수될 수 있습니다.