자바스크립트는 함수가 실행될때마다, 현재 실행되는 함수에 대한 관련 정보를 컴퓨터 메모리에 저장하는데, 이것을 실행 컨텍스트라고 일컫는다.
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)
자바스크립트는 함수가 실행될때마다 현재 실행되는 함수에 대한 관련 정보를 저장합니다.
그래서 위 두 함수 실행문에 대한 정보가 각각 컴퓨터에 저장됩니다.
두 개의 함수 실행문에 대한 실행 컨텍스트는 각각 아래와 같은 정보를 담고 있습니다.
다시 말해, 첫째 함수 실행문에 대한 실행 컨텍스트는 아래와 같은 정보를 담게 됩니다.
두 번째 함수 실행문에 대한 실행 컨텍스트는 아래와 같은 정보를 담게 됩니다.
즉, 8번 줄의 함수가 실행된다면 y 는 5이고, x의 값은 상위 스코프(첫 함수 실행 컨텍스트의 스코프)에서 찾은 값인 5를 사용하게 되고, 결과는 10입니다.