실행 컨텍스트 객체의 실체 (=담기는 정보)
- 1. variableEnvironment(VE)
- 현재 컨텍스트 내의 식별자 정보(=record)를 갖고 있다.
- 1. var a = 3
- 2. 위의 경우, var a를 의미
- 외부 환경 정보(=outer)를 갖고 있다.
- 선언 시점 LexicalEnvironment 의 snapshot
- 2. LexicalEnvironment(LE)
- VariableEnvironment와 동일하지만, 변경사항을 실시간으로 반영.
- 3. ThisBinding
- this 식별자가 바라봐야할 객체
VE vs LE
- 이 두가지는 완벽하게 동일, 그러나 스냅샷 유지여부가 다르다.
- 1. VE : 스냅샷 유지 O
- 2. LE : 스냅샷 유지 X , 실시간으로 변경사항을 계속해서 반영
※ 실행 컨텍스트를 생성할때, VE에 정보를 먼저 담은 다음 → 아를 그대로 복사해서 LE를 만들고 이후에는 주로 LE를 활용
◎ Record
- 1. 현재 컨텍스트와 관련된 코드의 식별자 정보들을 저장.
- 2. 수집 대상 정보 : 함수에 지정된 매개변수 식별자, 함수 자체, var로 선언된 변수 식별자 등
- 3. 컨텍스트 내부를 처음부터 끝까지 순서대로 훓어가며 수집 (실행x)
- 호이스팅
- 식별자 정보만 위로 다 끌어올린다.
- 가상개념
- 규칙
- 1. 매개변수 및 면수는 선언부를 호이스팅 한다.
- 2. 함수 선언은 전체를 호이스팅 한다.
'JavaScript > 3주차' 카테고리의 다른 글
9. outer (0) | 2023.05.24 |
---|---|
8. record와 호이스팅 2 (함수의 호이스팅) (0) | 2023.05.24 |
6. 실행 컨텍스트 및 콜 스택 소개 (0) | 2023.05.24 |
5. null과 undefined (0) | 2023.05.24 |
4. 불변 객체(얕은 복사 , 깊은 복사) (0) | 2023.05.24 |