[매일 개념] 실행 컨텍스트

DongHyeon·2022년 7월 11일
0

매일 개념

목록 보기
20/28

실행 컨텍스트란(Execution Context)란?

  • 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념
  • 코드들이 실행되기 위한 환경(코드가 실행된다면 실행 컨텍스트 내부에서 실행되고 있는 것)
  • 자바스크립트 엔진에서 코드를 실행하기 위해서는 실행에 필요한 정보를 알고 있어야 함
    • 변수 : 전역 변수, 지역 변수, 매개 변수, 객체의 프로퍼티
    • 함수 선언
    • 변수의 유효범위
    • this

실행 컨텍스트의 종류

  • Global Context(전역 컨텍스트)
    • 함수 안에서 실행되는 코드가 아니라면 모든 스크립트는 Global Context에서 실행
    • 스택 구조의 형태로 Excution Context가 생성 된 후 global object로 window가 this로 할당되고 스택에 쌓임
    • Global Context 안에 포함되는 모든 코드들의 실행가능한 코드들은 순서대로 쌓임
  • Functional Context(함수 컨텍스트)
    • Functional Context는 선언된 함수가 호출이 될 때를 기점으로 생성, 함수의 모든 동작이 종료되면 Funtional Context는 소멸(closure를 사용하면 스코프가 소멸하지 않고 이용 가능)
    • 각각의 함수들은 Functional Context를 가지지만 함수가 호출이 되어야만 생성

Execution Context의 3가지 객체

  • 실행 컨텍스트는 추상적인 개념잉지만 물리적으로 객체의 형태를 가지며 3가지 프로퍼티를 소유

    • Variable Object(변수 객체)
      실행 컨텍스트가 생성되면 정보를 담은 객체를 생성
    • Scope Chain
      스코프 체인은 리스트라고 생각, 전역 객체와 함수의 스코프의 레퍼런스를 저장
    • this value
      this 프로퍼티는 this 값이 할당되는데 할당되는 값은 this의 5가지 패턴으로 결정

0개의 댓글