- Execution Context
- 코드가 실행되는 환경을 말함
- 어떤 변수, 함수에 접근 가능한지를 결정
- 구성 요소
Variable Environment
var
, 함수 선언 등
- lexical environment과 겹쳐보이지만, 초기화용
This Binding
Scope Chain
Lexical Environment
- Activation Object
- 특정 스코프의 변수와 함수 선언을 저장하는 객체
- 구성 요소
Environment record
Outer Lexical Environment Reference
- 전역 환경, 부모 스코프의 lexical environment 를 참조
- Closures의 원리
- 종류
- Global Context
- 전체 코드 실행 시 생성
- browser -
window
- node -
global
- Function Context
- Eval Context
- 실행 과정
- 컨텍스트 생성
- 변수/함수 선언을 메모리에 올림 (호이스팅)
- 컨텍스트 실행
- 코드 실행
- 함수 호출 시 새로운 컨텍스트가 스택에 push됨