실행 컨텍스트
실행할 코드에 제공할 환경정보를 모아놓은 객체
- 실행 컨텍스트 3가지 객체
--Variable Object
실행에 필요한 여러 정보들을 담을 객체
변수,
매게변수와 인수
함수 선언
전역 컨텍스트인 경우 => 전역 객체
함수 컨텍스트인 경우 => 활성 객체를 가리킴
--스코프체인
일종의 리스트
전역 객체, 중첩된 함수의 레퍼런스를 저장하고 있음
식별자 중에서 객체의 프로퍼티가 아닌
변수를 검색하는 메커니즘
스코프체인을 통해서 렉시컬 스코프 파악
--this value
함수 호출 패턴에 의해 this 값 결정
- 실행 컨텍스트 생성 과정
///////////// 코드 실행 전
1. 전역 객체가 생성됨
2. 전역 실행 컨텍스트 생성
// 실행 컨텍스트 스택에 쌓임
3. 실행 컨텍스트 바탕으로 일련의 과정 실행
-- 스코프 체인 생성과 초기화
변수 객체화가 실행됨
-- Variable Instantiation (변수 객체화) 실행
(반드시 순서대로 실행됨)
VL-1. 함수의 경우 매개변수가 Variable Object의 프로퍼티, argument가 값으로 설정됨
VL-2. 함수 선언식이 Variable Object의 프로퍼티, 값으로 설정됨
VL-3. 변수들이 Variable Object의 undefined로 설정됨
// 호이스팅
-- this value 결정
함수 호출 패턴에 의해 this에 할당되는 값이 결정
전역 코드의 경우 this => 전역 객체
//////////// 전역 코드의 실행
4. 변수 값의 할당
5. 함수 실행
참고자료
'JavaScript' 카테고리의 다른 글
절대경로 상대경로 (1) | 2020.03.15 |
---|---|
메소드 함수란 ? (0) | 2020.01.29 |
stable , unstable, inplace (0) | 2020.01.22 |
promise (0) | 2020.01.20 |
Asynchronous, Higher Order Function, Event Loop (0) | 2020.01.12 |