실행 컨텍스트와 클로저 연결 흐름
함수 호출은 새 실행 컨텍스트를 만들고, 함수 선언 위치는 렉시컬 환경 연결을 남긴다.
| 구성 | 역할 | 남는 정보 | 확인할 것 |
|---|---|---|---|
| Call | 함수가 실행되며 컨텍스트 생성 | 매개변수와 지역 변수 | 호출이 끝나면 스택에서 빠지는가 |
| Lexical env | 이름을 찾을 환경 기록 | outer environment link | 선언 위치 기준인지 확인 |
| Scope chain | 현재에서 바깥으로 이름 탐색 | 지역 -> 외부 -> 전역 | 같은 이름 shadowing 주의 |
| Closure | 함수가 바깥 환경을 기억 | 필요한 변수 참조 | 오래 남는 상태를 의도했는가 |
| GC | 참조가 끊긴 환경 수거 | 도달 가능성 | 불필요한 참조를 붙잡지 않는가 |
클로저는 함수가 실행된 뒤에도 선언 당시의 이름 탐색 경로가 살아 있는 구조로 이해하면 된다.