강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

자바스크립트 중고급: 엔진 핵심

3. 실행 콘텍스트 실행 과정, [정리 시간]

정리시간 질문입니다.

작성

·

180

0

function book() {

    function get() {

        return point;

    };

    var point = 123;

    return get();

};

console.log(book());

실행 컨텍스트{

    렉시컬 환경 컴포넌트{

        환경 레코드: {

         point: 123

        }

        외부 렉시컬 환경 참조: {

       

        }

    }

    변수 환경 컴포넌드 {

    }

    this bind 컴포넌트

}

이렇게 되는게 맞나요?

답변 1

0

김영보님의 프로필 이미지
김영보
지식공유자

환경 레코드: {

   point: 123

}

맞습니다. 

---------------------

function add() 함수 오브젝트는 Function()의 prototype을 참조하고 다시 Object()의 prototype을 참조 하면서,

add() 함수는 prototype을 갖고 있는 것이지 참조하는 것이 아닙니다.

여기서 참조는 add() 함수가 속한 오브젝트를 뜻하며, 글로벌 오브젝트에 add 함수를 작성했으므로 글로벌 오브젝트에 속하게 되어 글로벌 오브젝트가 스코프가 되지만 ES5에서는 글로벌 오브젝트가 window 오브젝트에 설정되는 개념(글로벌 오브젝트는 오브젝트라는 실체가 없습니다)이므로 window 오브젝트 === 글로벌 오브젝트입니다. 

 

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기