실행 콘텍스트 실행과정 정리
미해결
자바스크립트 중고급: 엔진 핵심
function book(){ function get() { return point; }; var point = 123; return get(); }; console.log(book()); 1. function 키워드를 만나게 되고 book 오브젝트 생성 2. [[scope]]에 글로벌 오브젝트 설정 3. 변수 확인, 해당사항 없음 4. book() 으로 함수를 호출하면 엔진은 실행 콘텍스트를 생성하고, 실행 콘텍스트 안으로 이동합니다. 준비 단계 - 환경조성 5. 컴포넌트(LEC, VEC, TBC)를 생성하여 실행 콘텍스트에 첨부 6. 환경레코드(ER)를 생성하여 LEC에 첨부 - 함수 안의 함수, 변수를 환경레코드에 바인딩 7. 외부 렉시컬 환경 참조(OLER)를 생성하고 렉시컬 환경 컴포넌트 내 첨부 8. 글로벌 오브젝트의 [[scope]] 를 외부 렉시컬 환경 참조에 설정(참조) 실행 콘텍스트(EC): { 렉시컬 환경 컴포넌트(LEC) = { 환경레코드(ER) : { get : function 오브젝트, point: undefined; }, 외부 렉시컬 환경 참조(OLER) : {} }, 변수 환경 컴포넌트(VEC) : {}, this 바인딩 컴포넌트(TBC) : {} } 9. function 키워드를 만나게 되고 get function 오브젝트 생성 10. [[Scope]]에 get 스코프를 설정한다. 11. point 변수에 123 값이 할당 된다. 12. get() 으로 함수를 호출하면 엔진은 실행 콘텍스트를 생성하고, 실행 콘텍스트 안으로 이동합니다. 실행 콘텍스트(EC): { 렉시컬 환경 컴포넌트(LEC) = { 환경레코드(ER) : {}, 외부 렉시컬 환경 참조(OLER) : { point : 123 } }, 변수 환경 컴포넌트(VEC) : {}, this 바인딩 컴포넌트(TBC) : {} } 13. 환경 레코드에서 먼저 찾고 없으면 외부 렉시컬 환경 참조에서 point를 찾습니다. 실행단계 14. 함수 내 코드 실행하여 point 값을 return 합니다. 제대로 이해한게 맞는가요?..
- 실행콘텍스트
- javascript





