• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

실행 콘텍스트 정리입니다.

20.03.27 09:26 작성 조회수 134

1

1. function 키워드를 만나 book function 오브젝트를 생성한다.

2. book function 오브젝트의 [[scope]]에 글로벌 스코프를 설정한다.

3. book()함수가 호출되어 함수안으로 들어간다.

4. function 키워드를 만나 get function 오브젝트를 생성하고 [[scope]]에 book() 스코프를 설정한다.

4. 그리고 실행 콘텍스트가 만들어진다? 

 ** 궁금증 ** 

  함수가 호출되어 들어가는 시점에 실행 콘텍스트가 만들어 지는건가요 get function 오브젝트를 생성하고 실행 콘텍스트가 만들어 지는건가요??

  준비 단계에서 외부 렉시컬 환경 참조에 연결 시키려면 그 이전에 get function 오브젝  트가 만들어져 있어야하는데 get function 오브젝트를 생성하고 실행 콘텍스트가 만들어 지는 건가요?

=== 준비 단계 ===

5. 렉시컬 환경 컴포넌트, 변수 환경 컴포넌트, this 바인딩 컴포넌트를 만들어 넣고 이후에 환경 레코드 와 외부 렉시컬 환경 참조를 생성하고 렉시컴 컴포넌트에 넣는다. 

6. get function 오브젝트의 설정된 스코프를 외부 렉시컬 환경 참조에 연결 시킨다.

=== 초기화 단계 ===

7. point 변수를 렉시컬 환경 컴포넌트의 환경 레코드의 선언적 환경 레코드에 undefined의 값으로 설정한다.

=== 실행 단계 ===

8. 처음으로 올라가 point 변수에 123을 설정한다.

9. 그리고 return에 get()함수가 호출되어 다시 함수 안으로 들어간다.

 ** 궁금증 ** 

  9번의 설명을 맞게 했는지 모르겠습니다.

10. 들어가서 실행 콘텍스트를 만들고 위와 같은 단계로 설정하는데 선언문과 표현문이 없기에 아무것도 설정하지 않는다. 그리고 return으로 와서 point를 반환하려고 point를 찾는데 없다. 그러면 상위 스코프에 설정된 point 값을 할당하고 함수를 빠져나온다.

답변 2

·

답변을 작성해보세요.

0

I.m yong님의 프로필

I.m yong

질문자

2020.03.27

감사합니다. 조언대로 복습하고 진도 나가겠습니다.

0

함수가 호출되어 들어가는 시점에 실행 콘텍스트가 만들어 지는건가요 get function 오브젝트를 생성하고 실행 콘텍스트가 만들어 지는건가요?? ==> 함수가 호출되면 우선 실행 콘텍스트를 만들고 함수를 실행합니다. 왜냐하면 함수에서 실행할 모든 환경을 실행 콘텍스트에 설정하기 때문입니다. 그래서 실행이고 콘텍스트입니다. 

권고 하나 할께요. 이 시점에서 정리를 할 필요가 있습니다. 더 이상 진도를 나가지 마시고 강좌의 처음으로 돌아가 반복하세요. 왜냐하면 앞 내용이 정립되지 않은 상태에서 진도를 나가면 외우는 모습이 되며, 모래 위에 집을 짓는 모습이 되기 때문입니다. 지금까지 논리적으로 접근하여 바탕을 만들었으므로 이것이 가능합니다. 중간에서 한 번 점검할 시점입니다. 지금처럼 구조도 그리고 코드를 만들어 가면 정립될 것입니다. 파고 드는 모습이 너무 좋습니다. 응원합니다.^^