더북(TheBook)

함께 따라 가 보자.

자바스크립트 엔진은 전역 환경(EnvObject1)을 만들고 바인딩 x, f, example을 여기에 추가한다.

example 함수를 생성하고 example의 저장된 환경 링크를 현재 환경(전역 환경인 EnvObject1)에 설정하고 example 바인딩의 값을 함수에 설정한다.

let x = 1;을 실행한다. x1로 설정한다.

const f = example(); 줄을 실행한다.

- EnvObject2라는 새 환경 객체를 생성하고 외부 환경을 example의 저장된 환경 (EnvObject1)으로 설정한다.

- 해당 환경 객체에 y라는 바인딩을 만든다.

- const y = 2; 줄을 실행한다. y를 2로 설정한다.

- 현재 환경(example 호출을 위한 EnvObject2)을 저장된 환경으로 설정하여 함수를 생성한다.

- 호출에서 함수를 반환한다.

- 함수를 f에 할당한다.

마지막으로 엔진은 f();줄을 실행한다. 함수 f를 호출한다는 것은 다음을 의미한다.

- 호출에 대한 새 환경 객체(EnvObject3)를 만들고, 해당 외부 환경을 함수의 저장된 환경(EnvObject2, 이전 example 호출에서 가져온 환경)으로 설정하고, 여기에 z 바인딩을 만든다.

- z를 3으로 설정한다.

- console.log 줄을 실행한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.