본문 바로가기

카테고리 없음

실행 컨텍스트

실행 컨텍스트(Execution Context)란, 코드가 실행되고 있는 동안 필요한 정보를 모아둔 추상적인 개념입니다. 실행 컨텍스트는 함수가 호출되거나 전역 코드를 실행할 때와 같이 코드가 실행될 때마다 생성됩니다. 코드 실행이 시작되면 전역 실행 컨텍스트가 생성되어 콜 스택에 푸시되고, 함수 호출 및 블록 스코프 등이 실행될 때마다 새로운 실행 컨텍스트가 생성되어 콜 스택에 추가됩니다. 실행이 완료되면 해당 실행 컨텍스트는 스택에서 제거됩니다. 이 과정은 코드의 전체 실행 과정 동안 계속 반복됩니다.

 

실행 컨텍스트 주요 구성 요소

변수 환경(Variable Environment): 실행 컨텍스트 내에서 선언된 변수와 함수 선언을 저장하고 있는 환경 레코드입니다. 이 변수 환경은 렉시컬 환경의 일부입니다.

 

렉시컬 환경(Lexical Environment): 현재 실행중인 코드 블록을 포함한 코드가 존재하는 스코프 정보를 가지며, 식별자와 그에 대응하는 값의 조회와 결정을 돕습니다. 렉시컬 환경은 변수 환경뿐만 아니라 외부 렉시컬 환경 참조를 포함합니다. 외부 렉시컬 환경은 중첩된 함수의 스코프 체인을 지원합니다.

 

this 바인딩: 실행 컨텍스트에는 함수 실행 시 호출되는 객체의 참조가 포함되어 있습니다. 이 참조는 this 키워드를 사용하여 함수 내에서 접근할 수 있습니다. this의 값은 함수가 호출되는 방식에 따라 결정되며, 일반적으로 호출 시점의 객체가 this 값으로 사용됩니다.