일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 월칙
- 레퍼런스 복사
- sentry
- 수부타이
- 아웃풋법칙
- Container
- CSS
- node
- 비메모리 자원
- 뉴 컨피던스
- colllection
- 히든 스토리
- 도파민형 인간
- 쿠버네티스
- Infresh
- 과제의 분리
- apache kafka
- ESG
- 이펙티브 자바
- try-with-resources
- 공헌감
- docker
- try width resources
- HTML
- kubernetes
- 참조 계수
- 부자의그릇
- 칭기즈칸의 위대한 장군 수부타이
- java
- 모두가 기다리는 사람
- Today
- Total
Hi
실행 컨텍스트 생성 과정 본문
실행 컨텍스트 생성 과정
function execute(param1, param2) {
var a = 1, b = 2;
function func() {
return a + b;
}
return param1 + param2 + func();
}
execute(3, 4);
활성 객체 생성
실행 컨텍스트가 생성되면 자바스크립트 엔진은 해당 컨텍스트에서 실행에 필요한 여러가지 정보를 담을 객체를 생성하는데, 이를 "활성 객체"라고 한다.
활성 객체
: 앞으로 사용하게 될 매개변수나 사용자가 정의한 변수 및 객체를 저장하고,
새로 만들어진 컨텍스트로 접근 가능하게 되어있다.
엔진 내부에서 접근할 수 있다는 것이지 사용자가 접근할 수 있는건 X
arguments 객체 생성
활성 객체는 arguments 프로퍼티로 이 arguments 객체를 참조한다.
스코프 정보 생성
스코프 정보 : 현재 컨텍스트의 유효 범위
현재 실행중인 실행 컨텍스트 안에서 연결리스트와 유사한 형식으로 만들어 진다.
현재 컨텍스트에서 특정 변수에 접근해야 할 경우, 이 리스트를 활용한다.
이 리스트로 현재 컨텍스트의 변수뿐 아니라, 상위 실행 컨텍스트의 변수도 접근이 가능하다.
이 리스트를 '스코프 체인'이라고 하는데, [[scope]] 프로퍼티로 참조 된다.
현재 생성된 활성 객체가 스코프 체인의 제일 앞에 추가되며, execute() 함수의 인자나 지역 변수 등에 접근할 수 있다.
변수 생성
생성되는 변수를 저장하는 변수 객체.
활성객체 === 변수 객체
변수 객체 안에서, '호출된 함수 인자'는 각각의 프로퍼티가 만들어지고 그 값이 할당된다.
만약 값이 넘겨지지 않았다면 undefined가 할당된다.
변수나 내부 함수를 단지 메모리에 생성(instantiation)하고, 초기화(initialization)는 각 변수나 함수에 해당하는표현식이 실행되기 전까지는 이루어지지 않는다.
표현식의 실행은 변수 객체 생성이 다 이루어진 후 시작된다.
this 바인딩
this 키워드를 사용하는 값이 할당된다.
this가 참조하는 객체가 없으면 전역 객체를 참조한다.
코드 실행
실행 컨텍스트가 생성되고, 변수 객체가 만들어진 후에, 코드 실행이 된다.
변수의 초기화 및 연산, 또 다른 함수 실행 등이 이루어진다.
'WEB(웹) > javascript' 카테고리의 다른 글
replaceAll() 구현 (0) | 2018.07.04 |
---|---|
스코프 체인 (0) | 2018.07.03 |
실행 컨텍스트 개념 (0) | 2018.07.03 |
프로토타입 체이닝 (0) | 2018.07.03 |
이벤트 발생 객체와 이벤트 객체 (0) | 2018.07.01 |