CONTEXT
실행 컨텍스트의 개념을 설명하기에 앞서 call stack(콜 스택)을 먼저 알아보자.
이는 함수를 호출할때 해당함수의 호출정보가 차곡차곡 쌓여있는 스택(잘 정리된 더미)을 의미한다.
프로그램을 작성할때 main함수(외부)가 있고 main 함수 내에서 다른 함수를 호출한다고 했을 때 이렇게 호출된 함수가 또 다시 다른 함수를 호출 할 수도 있고 단순 처리과정만을 거친 후 main 함수로 돌아 갈 수도 있다.
즉, A함수 내부에 B함수를 호출하고 B함수 처리과정 중에 C라는 함수를 또 호출된다고 할때 이러한 처리 순서를구현하기 위해서 사용되는 것이 call stack이라는 구조이다. (이 구조는 크롬의 개발자 도구의 우측에서 확인할 수가 있다.)
이러한 콜 스택의 호출 정보등으로 코드의 실행과정을 추적하여 디버깅과 같은 작업을 수행한다.
실행 컨텍스트는 앞에서 설명한 콜 스택에 들어가는 실행 정보 하나와 비슷하다.
ECMAScript 에서는 실행 컨텍스트를 "실행 가능한 코드를 형상화하고 구분하는 추성적인 개념"으로 기술한다.
이를 앞에서 설명한 콜 스택과 연관지어 정의하자면 "실행 가능한 자바스크립트 코드 블록이 실행되는 환경" 이라고 할 수 있고 여기서 말하는 실행 가능한 자바스크립트 코드 블록은 대부분의 경우 함수가 된다.
달리 설명하자면, 자바스크립트에서 작성하는 코드는 항상 컨텍스트에 속하게 되는데 context란 그 속에서 코드가 돌아가는 객체를 일컫는다.
context는 this 변수를 통해 동작하고 this 변수는 코드가 속한 객체를 가리킨다.
'JavaScript > Core & 개념ㆍ용어' 카테고리의 다른 글
JavaScript Closure(자바스크립트 클로저) (2) | 2016.09.29 |
---|---|
프로토타입방식의 클래스 (0) | 2016.09.29 |
자바스크립트 생성자 패턴 - new를 강제하는 패턴 (10) | 2016.09.29 |
자바스크립트 생성자 (0) | 2016.09.29 |
클래스 기반의 객체지향 개념 (0) | 2016.09.29 |