(JS) 실행 컨텍스트 (Execution Context)

호두파파·2021년 1월 19일
0

Closure

목록 보기
2/2

자바스크립트는 함수가 실행될때마다, 현재 실행되는 함수에 대한 관련 정보를 컴퓨터 메모리에 저장하는데, 이것을 실행 컨텍스트라고 일컫는다.

function addCurry (x) {
  return function add (y) {
    return x + y;
  };
}

const addFive = addCurry(5);
const result = addFive(5);

console.log(result);

위 함수 실행문에 실행 컨텍스트는 총 2개가 있습니다.

  • const addFive = addCurry(5);addCurry(5)
    -const result = addFive(5);addFive(5)

자바스크립트는 함수가 실행될때마다 현재 실행되는 함수에 대한 관련 정보를 저장합니다.

그래서 위 두 함수 실행문에 대한 정보가 각각 컴퓨터에 저장됩니다.
두 개의 함수 실행문에 대한 실행 컨텍스트는 각각 아래와 같은 정보를 담고 있습니다.

  • 변수 정보 (일반 변수, 매개 변수, 함수 선언 등)
  • 스코프 정보
  • this 정보

다시 말해, 첫째 함수 실행문에 대한 실행 컨텍스트는 아래와 같은 정보를 담게 됩니다.

  • 변수 정보
  • 매개 변수 x 에 대한 값, 즉 5
  • 선언되어 생성된 add 함수
  • 스코프 정보 : 상위 스코프는 글로벌 스코프라는 정보가 담깁니다.
  • this 정보 : 일반함수 실행이기 때문에, Globel Object.

두 번째 함수 실행문에 대한 실행 컨텍스트는 아래와 같은 정보를 담게 됩니다.

  • 변수 정보
  • 매개 변수 y 에 대한 값, 즉 5
  • 스코프 정보: 첫번재 함수 실행 컨텍스트의 스코프가 상위 스코프라는 정보가 담깁니다.
  • this 정보 : 일반함수 실행이기 때문에, Globel Object.

즉, 8번 줄의 함수가 실행된다면 y 는 5이고, x의 값은 상위 스코프(첫 함수 실행 컨텍스트의 스코프)에서 찾은 값인 5를 사용하게 되고, 결과는 10입니다.

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글