[Javascript] 실행컨텍스트

★개발일기★ ㅣ 2023. 8. 1. 14:55

반응형

실행 컨텍스트란?

자바스크립트 실행 컨텍스트는 자바스크립트 실행에 필요한 환경 정보를 모아놓은 객체이다.
자바스크립트는 동일한 환경에 있는 환경 정보를 call stack 에 쌓은 후 코드를 실행하여, 코드의 환경과 순서를 보장 할 수 있다.
실행 컨텍스트는 함수 안에서 실행되는 Functional Context (함수 컨텍스트) 와 함수 안에서 실행되는 코드가 아닌 경우에는 Global Context ( 전역 컨텍스트 ) 가 있다.

  • Global Context ( 전역컨텍스트 )
    • 함수 안에서 실행되는 코드가 아닌 모든 스크립트
    • 전역컨텍스트 내의 this 는 global 객체 ( 변수 객체를 생성하지 않고 global 을 사용 )
    • LIFO ( Last in First out ) 로 실행
  • Functional Context ( 함수컨텍스트 )
    • 함수가 호출 될 경우에 함수 컨텍스트가 생성이 되고, 함수의 실행이 끝나면 사라진다 ( GC )
    • 클로저를 사용하면 스코프가 소멸하지 않는다.

 

실행 컨텍스트 구조

  1. Variable Object ( 변수 객체 )
    • 전역 컨텍스트에서는 전역 함수, 전역 변수의 정보를 담고 있다.
    • 함수 컨텍스트에서는 arguments 객체 {} , 내부함수, 지역 변수의 정보를 담고 있다.
  2.  Scope Chain
    • 전역 객체와 함수의 주소값을 저장한다.
    • 실행 컨텍스트가 참조 할 수 있는 변수, 함수 선언 등의 정보를 담고 있다.
    • 하위 -> 상위 -> 전역 순으로 탐색을 진행하고 없다면, 정의 되지 않은 변수에 접근하기 때문에 에러가 발생한다.
  3. This
    • 식별자가 바라봐야 할 대상 객체
    • 일반적인 함수 / 내부 함수 / 메소드 / 생성자 패턴에 따라 다르므로, 아래 포스팅을 참고하자

 

 

[Javascript] this

Javascript의 this Javascript 에서의 this 는 우리가 흔히 처음접하게 되는 언어인 Java 의 this 와 사용법이 달라 혼동이 올 때가 있다. Java 와 같은 객체지향 언어에서 this 는 class 로 생성된 인스턴트 자신

just-take-the-first-step.tistory.com

 

 

반응형