[javascript] 함수 실행 컨텍스트가 생성되는 과정은 어떻게 되는가?

함수 실행 컨텍스트가 생성되는 과정은 다음과 같습니다.

  1. 활성 객체 생성: 함수가 호출되면 해당 함수의 실행 컨텍스트가 생성됩니다. 이때, 해당 컨텍스트의 활성 객체가 생성됩니다. 이 활성 객체는 해당 함수의 인자, 지역 변수, 중첩 함수, this 등의 정보를 담고 있습니다.

  2. 스코프 체인 생성: 함수가 정의된 위치에 따라 스코프 체인이 형성됩니다. 이때, 현재 실행 중인 함수의 스코프, 그리고 상위 함수의 스코프가 체인 형태로 연결됩니다.

  3. 변수, 함수 등록: 활성 객체 내에 해당 함수가 사용하는 변수와 함수가 등록됩니다. 이때, 변수와 함수는 메모리가 할당되고, 초기화 및 선언 단계가 수행됩니다.

  4. this 바인딩: this 키워드가 사용된 경우, 해당 값이 바인딩됩니다.

  5. 코드 실행: 위의 과정이 완료되면, 실제로 코드의 실행이 시작됩니다.

이렇게 함수 실행 컨텍스트가 생성되며, 위의 과정이 함수가 실행될 때마다 반복됩니다.