실행 컨텍스트

Bruce·2022년 1월 25일

프론트엔드 코어

목록 보기
8/31
  • scope, hoisting, this, function, closure 등의 동작원리를 담은 자바스크립트 핵심원리
  • 실행 가능한 코드가 실행되기 위해 필요한 환경
  • 실행 가능한 코드: 전역 코드, 함수 코드, EVAL 코드
  • 실행에 필요한 정보: 변수(전역 변수, 지역 변수, 매개 변수, 객체 프로퍼티), 함수 선언, 스코프, this


Last In First Out 구조



실행 컨텍스트의 3가지 객체

1. 변수 객체

- 전역 컨텍스트

Variable Object는 유일하며 최상위에 위치하고 모든 전역 변수, 전역 함수 등을 포함하는 전역 객체(Global Object / GO)를 가리킨다. 전역 객체는 전역에 선언된 전역 변수와 전역 함수를 프로퍼티로 소유한다.

- 함수 컨텍스트

Variable Object는 Activation Object(AO / 활성 객체)를 가리키며 매개변수와 인수들의 정보를 배열의 형태로 담고 있는 객체인 arguments object가 추가된다.

var x = 'xxx';

function outer () {
  var y = 'yyy';

  function inner () {
    var z = 'zzz';
    console.log(x + y + z);
  }
  inner();
}

outer();

2. 스코프 체인

스코프 체인은 일종의 리스트로 전역 객체와 중첩된 함수의 스코프의 레퍼런스를 차례대로 저장하고 있다. 즉, 전역 또는 함수가 참조할 수 있는 변수, 함수, 선언 등의 정보를 담고있는 전역 객체(GO) 또는 활성 객체(AO)의 리스트.

현재 실행 컨텍스트의 활성 객체를 선두로 순차적으로 상위 컨텍스트의 활성 객체를 가리키며 마지막에는 전역 객체를 가리킨다 하지만 검색에 실패하면 정의되지 않은 변수에 접근하는 것으로 판단하여 Reference 에러를 발생시킨다.

스코프 체인은 함수의 감추인 프로퍼티인 [[Scope]]로 참조할 수 있다.

스코프 체인은 식별자 중에서 객체(전역 객체 제외)의 프로퍼티가 아닌 식별자, 즉 변수를 검색하는 메커니즘이다. 식별자 중에서 변수가 아닌 객체의 프로퍼티(물론 메소드도 포함된다)를 검색하는 메커니즘은 프로토타입 체인(Prototype Chain)이다.

3. this value

this에 할당되는 값은 함수 호출 패턴에 의해 결정된다.





출처: https://poiemaweb.com/js-execution-context

profile
Figure it out yourself

0개의 댓글