- 활성 객체 생성
- arguments 객체 생성
- 스코프 정보 생성
- 변수 생성
- this 바인딩
- 코드 실행
function execute(param1, param2){
var a = 1, b = 2;
function func(){
return a + b;
}
return param1 + param2 + func();
}
execute(3,4);1. 활성 객체 생성
실행 컨텍스트가 생성되면 자바스크립트 엔진은 해당 컨텍스트에서 실행에 필요한 여러가지 정보를 담을 객체를 생성한다.
2. arguments 객체 생성
위 예제에서 param1,2 가 들어왔을 경우
3. 스코프 정보 생성
현재 컨텍스트의 유효 범위를 나타내는 스코프 정보를 생성.
현재 컨텍스트에서 특정 변수에 접근해야 할 경우, 현재 컨텍스트 변수뿐 아니라 상위 실행 컨텍스트의 변수도 접근이 가능하다.(스코프 체인)
4. 변수 생성
현재 실행 컨텍스트 내부에서 사용되는 지역 변수의 생성이 이루어진다.
활성 객체 = 변수 객체
5. this 바인딩
마지막 단계에서는 this 키워드를 사용하는 값이 할당된다.
6. 코드 실행
위 과정을 거치면 하나의 실행 컨텍스트가 생성되고 변수 객체가 만들어진 후에 코드에 있는 여러가지 표현식 실행이 이루어진다. 이렇게 실행되면서 변수의 초기화 및 연산, 또 다른 함수 실행 등이 이루어진다. undefined가 할당된 변수 a,b에도 값이 할당 된다.