Execution Context 개념
Execution context는 javascript 코드를 실행하기 위해 필요한 환경을 말한다. 자바스크립트 엔진이 코드를 실행하기 위해서는 다음 정보를 알아야 한다.
- 변수 : 전역변수, 지역변수, 매개변수, 객체 프로퍼티
- 함수 선언
- Scope 정보
- this
javascript 엔진은 execution context를 객체로써 관리한다. execution context 객체는 위의 정보를 저장하기 위해 아래와 같이 3개의 프로퍼티를 갖는다.
각 프로퍼티에 대한 간단한 설명은 다음과 같다.
- variable object (VO) : 변수, 매개변수, 함수 선언 정보를 담는다.
- scope chain : 스코프 정보를 담는다.
- thisValue : this 바인딩 정보를 담는다.
Execution Context의 종류
Execution context는 두 가지로 분류할 수 있다.
- global execution context(global EC) : 전역 실행 컨텍스트
- funcational execution context(functional EC) : 각 함수를 실행하기 위한 컨텍스트
Execution Context의 생성과 소멸
- global execution context : 스크립트 실행 시 생성되며, 스크립트가 끝나면 소멸된다.
- funcational execution context : 함수 '호출'시 생성되며, 함수가 끝나면 소멸된다.
foo(), bar() 라는 함수가 호출된다고 가정하면 execution context 스택은 다음과 같다.
한편, 함수의 execution context는 함수 호출시 생성된다. 호출 전에는 상위객체의 VO에 함수의 선언만 저장되어 있다.
'dev > JavaScript' 카테고리의 다른 글
debounce와 throttle (0) | 2020.08.20 |
---|---|
JavaScript 안정 정렬 (2) | 2020.07.28 |
JS 코딩테스트를 위한 코드 스니펫 (0) | 2020.07.20 |
CPS 예외 처리 패턴 (1) | 2019.11.18 |
화살표 함수와 this (0) | 2019.05.30 |