실행 컨텍스트에는 3가지 환경정보들이 담긴다.
- variableEnvironment : 최초의 식별자 정보 수집(값이 변하지 않는다)
- LexicalEnvironment : 각 식별자의 데이터 추적 (어휘적/사전적 환경), 실행컨텍스트를 구성하는 환경 정보들을 모아 사전처럼 구성한 객체. 실행 컨텍스트의 실행 내용에 따라서 변수 값이 바뀔 때 그 변경 사항을 계속 트랙킹 하는 정보이다.
- ThisBinding (여기에서는 안다루겠다)
컨텍스트 내부 코드들이 실행하는 동안 변수의 값들에 변화가 생길 수 있는데 이 변화를 반영을 담당하는것이 LexicalEnvironment이다. 반면에 variableEnvironment는 변화를 반영하지 않는 고정된 값들이다.
종류
- environmentRecord : 현재 문맥의 식별자
- outerEnvironmentReference : 외부 식별자
function hoho () {
return hoho
}
var haha = 'haha'
var hihi = 'hihi'
environmentRecord
{
function hoho(){...}
haha: undefined,
hihi: undefined
}
수정중...