Execution context의 생성과 소멸 과정
이번 포스팅은 지난번에 다루었던 execution context (실행문맥)의 생성과 소멸과정에 대해 파헤쳐보도록 하겠습니다.
소스코드의 동작 흐름에 따라 변하는 execution context stack(=call stack) 을 자세히 살펴보겠습니다.
지난번 포스팅에서 사용한 소스코드를 그대로 활용하겠습니다.
0. 예제소스
0.1 원본
[ 원본소스 ]
0.2 실행 흐름에따른 생성과 소멸 시점
[ 생성과 소멸 시점 ]
위의 스소코드가 동작하는 시점별로 execution context 의 논리적인 구조를 살펴보겠습니다.
1. 전역코드 실행 전
1.1 전역 객체(window) 생성
1.2 global execution context 생성
2. 전역코드 실행
2.1 전역변수(global) 값 할당
2.2 전역함수 func1()호출과 execution context 생성
3. func1() 함수코드 실행
3.1 지역변수(local) 값 할당
3.2 내부함수 func2()호출과 execution context 생성
4. func2() 함수코드 실행
4.1 지역변수(inner) 값 할당
4.2 log method 실행
- func2 EC의 Scopes 객체를 참조하여 각 변수들을 호출 후 연산한 결과값("123")을 log method의 인자로 전달
- 반환값 "123" 출력
5. func2() execution context 소멸
6. func1() execution context 소멸
7. global execution context 소멸
최대한 정확한 정보를 공유하고자 항상 신중하게 포스팅을 하고 있지만, 내용에 개선이 필요한 부분이 있을 수 도 있습니다.
혹시나 추가적인 보완이 필요하다고 판단되는 부분이 있다면 댓글로 조언해주세요. 참고하여 수정해놓겠습니다.
* 해당 포스팅이 도움이되셨다면 공감과 댓글 부탁드릴께요 ㅎㅎ
'Computer Language > Front-end' 카테고리의 다른 글
[javascript] Execution Context (실행문맥)의 개념과 구조 (0) | 2019.01.03 |
---|