함께 따라 가 보자.

    자바스크립트 엔진은 전역 환경(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 줄을 실행한다.

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