실행 컨텍스트

8/12/2022

작성자 : 홍원배

  • 코드가 실행되기 위한 실행 환경 / 식별자들을 참조할 수 있는 실행범위
  • 변수, 함수의 식별자를 실행 컨텍스트의 실행환경 객체에서 검색하는 것은 스코프 체인, 객체의 이용 가능한 프로퍼티를 검색하는 것은 프로토타입 체인
 

렉시컬 환경이란?

실행 컨텍스트를 구성하는 컴포넌트 (자료구조)
2개의 컴포넌트로 구성ㅡ 환경레코드들, 외부창조환경레코드
렉시컬 스코프란? 함수를 어디서 선언했느냐에 따라서 함수의 상위 스코프를 결정한다
 
 

실행 컨텍스트 실행 순서

1. 렉시컬 환경

소스 코드의 타입에 따라 실행 컨텍스트의 렉시컬 환경이 다르고 생성하는 과정과 관리 내용이 다르다 (렉시컬 환경이 가지고 있는 환경 레코드 타입도 다름)
  • 실행 컨텍스트
    • 전역 렉시컬 환경
      • 객체 환경 레코드
      • 선언적 환경 레코드
    • 함수 렉시컬 환경
      • 함수 환경레코드
    • 블록 렉시컬 환경
      • 선언적 환경 레코드
  • this
👉
블록 렉시컬 환경은 현재 실행 컨텍스트의 렉시컬 환경을 대체하고 대체된 렉시컬 환경은 외부 렉시컬 환경의 참조로 들어가게 된다

2. 외부 렉시컬 환경에 대한 참조

 
 

참조 - ES3와 ES6 실행컨텍스트순서 비교

ES3 (Poimaweb)
1.스코프 체인의 생성과 초기화
2. Variable Instantiation(변수 객체화) 실행
3. this value 결정
 
ES6(deepdive)
1. 전역환경레코드, 선언적환경 레코드 완성
2. this value 결정
호출된 시점에 동적으로 결정
3. 외부 참조 환경 결정
[[Environment]] 내부슬롯에 부모 컨텍스트 내용 저장 ⇒ 호출 되었을때 외부 참조
 
    태그 :