-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
[정리 시간]의 작성 내용입니다.
21.05.22 23:27 작성 조회수 95
3
안녕하세요. 좋은 강의 감사드립니다.
[정리 시간]의 내용을 작성해보았는데요, 제대로 이해하고 있는 게 맞을까요..?
1. function 키워드를 만나 book이라는 function 오브젝트를 생성하고, 오브젝트의 [[Scope]]에 글로벌 오브젝트 설정
2. 마지막 줄에서 book() 함수를 호출하면
3. 엔진은 실행 콘텍스트를 생성하고 실행 콘텍스트 안으로 이동
==준비 단계 (실행 콘텍스트에서 실행할 수 있는 환경 구축)==
4. 컴포넌트를 생성하여 실행 콘텍스트에 첨부
-렉시컬 환경 컴포넌트, 변수 환경 컴포넌트, this 바인딩 컴포넌트
5. 환경 레코드를 생성하여 렉시컬 환경 컴포넌트에 첨부
6. 외부 렉시컬 환경 참조를 생성하여 렉시컬 환경 컴포넌트에 첨부하고
-book이라는 function 오브젝트의 [[Scope]]를 설정(참조)
==초기화 단계==
7. 호출한 함수의 파라미터 값이 있다면, 호출된 함수의 파라미터 값에 매핑하여 환경 레코드에 작성하나 파라미터 없음
8. function 키워드를 만나 get이라는 function 오브젝트를 만들고 [[Scope]]로 book 오브젝트를 설정
9. point라는 변수에 undefined를 할당
10. 여기까지는 외부에 실행 상태를 제공하지 않음
==실행 단계==
11. book 함수 안의 코드를 실행
12. point 변수에 123을 할당
13. get() 함수를 호출하면 엔진은 실행 콘텍스트를 생성하고 실행 콘텍스트 안으로 이동
get()함수의 실행 콘텍스트
==준비 단계==
15. 컴포넌트를 생성하여 실행 콘텍스트에 첨부
-렉시컬 환경 컴포넌트, 변수 환경 컴포넌트, this 바인딩 컴포넌트
16. 환경 레코드를 생성하여 렉시컬 환경 컴포넌트에 첨부
17. 외부 렉시컬 환경 참조를 생성하여 렉시컬 환경 컴포넌트에 첨부하고
-get이라는 function 오브젝트의 [[Scope]]를 설정
==초기화 단계==
18. 파라미터가 없고 function 키워드나 변수가 없음
==실행 단계==
19. return point를 만나고, point라는 식별자를 외부 렉시컬 환경 참조에서 찾아 123을 반환
20. get()함수의 reutrn 값이 book()함수의 return 값이므로 콘솔창에 123을 출력
감사합니다!!
답변을 작성해보세요.
답변 1