렉시컬 환경
- 함수가 사용할 함수, 변수를 렉시컬 환경에 설정
- 함수가 구조적, 독립적 환경에서 실행하기 위한 메커니즘 제공
- 초기화 단계에서 해석한
- 모든 함수/변수를 {key:value} 형태로 저장
- 함수/변수 이름을 key에 설정하고 값을 value에 설정
- 따라서 함수/변수를 key로 식별할 수 있음
렉시컬 환경 구성
렉시컬 환경은
- function, with, try-catch에서 생성
렉시컬 환경 구성 형태
렉시컬 환경(LE) = {
... 환경 레코드(ER: Environment Record): {...},
... 외부 렉시컬 환경 참조(OLER: Outer Lexical Environment Reference): {...}
}
- 환경 레코드에 함수 안의 함수, 변수 기록
- 외부 렉시컬 환경 참조에 가장 근접한 스코프 기록
렉시컬 환경(LE) = {
환경 레코드(ER: Environment Record): {
sports: "농구",
member: "5명"
},
외부 렉시컬 환경 참조(OLER: Outer Lexical Environment Reference): {
play: function(){},
values: [12, 34, 56]
}
}
함수/변수 검색 방법
- 환경 레코드에서 검색, 없으면 외부 렉시컬 환경 참조에서 검색
소스 코드 작성 최적화 방법
- 되도록 1단계 안에 변수, 함수 작성
- 1단계 밖의 실행 환경이 스코프이며 외부 렉시컬 환경 참조에 설정되기 때문
'Web > Javascript' 카테고리의 다른 글
Object.assign() (0) | 2017.03.23 |
---|---|
형 변환 (0) | 2017.03.21 |
실행 콘텍스트 (0) | 2017.03.14 |
클로저(closure) (0) | 2017.03.14 |
바인딩(Binding) (0) | 2017.03.14 |