0_ 개괄
- 정의:
- 실행할 코드에 제공할 환경 정보들을 모아놓은 객체
- 종류:
- 전역 컨텍스트: 전역 공간에서 자동으로 생성됨 == JS 구동 “환경”이 제공해주는 객체를 활용
- 브라우저 → window
- Node.js → global
- eval 및 함수 실행에 의한 컨텍스트
- 수집하는 정보
- Variable Environment
- Lexical Environment
- ThisBinding
1. Variable Environment
마치 snapshot처럼 Lexical environment의 초기상태를 저장한 것으로 변경되지 않음
- 실행 컨텍스트를 생성할 때,
- variable environment를 만들고
- 이를 그대로 복사해서 lexical environment를 만듦.
2. Lexical Environment
Variable Environment와 달리, lexical environment는 코드가 실행됨에 따라 변경됨
2-1. lexical environment의 뜻
- 직역하면 어휘적 환경
- 이해하기로는 “사전적” 환경
- 함수가 실행되면서 필요한 정보들을 “찾아오는” 객체이기 때문
2-2. 수집하는 정보
1. Environment Record