반응형
실행컨텍스트 ?
실행할 코드에 제공할 환경정보를 모아놓은 객체 이다.
자바스크립트에서는 실행 컨텍스트가 활성화되는 시점에 호이스팅, 외부환경정보를 구성, this값을 설정 하게되는 특징이있어 다른언어와 차이를보인다.
함수가 실행됬을때 call stack 에 실행 컨텍스트 객체들이 순차적으로쌓이게됨.
실행컨텍스트 객체 ?
해당 컨텍스트 관련된 코드를 실행하는데 필요한 환경정보를 가지고있다.
variableEnvironment
- 현재 컨텍스트 내의 식별자 정보
- 외부 환경 정보
- 선언 시점 lexicalEnvironment 의 snapshot 찍고 유지함
lexicalEnvironment
- variableEnvironment 동일하나 변경사항이 실시간으로 반영됨
thisbinding
- this 식별자가 바라봐야할 객체
실행컨텍스트를 생성할때 VE 에 정보를 먼저 담고 , 이를 복사해서 LE 만든후 주로 LE를 활용함.
VE 와 LE 의 구성요소
environmentRecord 와 outerEnvironmonetReference 로 구성된다.
주로 record 와 outer 라고 부른다.
environmentRecord
현재 컨텍스트와 관련된 코드의 식별자 정보를 저장함
함수에 지정된 매개변수 식별자, 함수자체, var 로 선언된 변수 식별자 정보가 저장된다.
컨텍스트 내부를 처음부터 끝까지 순서대로 훑어가며 수집하게된다.
outerEnvironmonetReference
스코프체인이 가능하도록 외부환경의 참조정보를 가지고있는것
내부함수에서 변수를찾는데 record 부터 검색 없다면 ? outer 안에있는 외부 참조정보를 가지고
외부참조정보안에있는 record 안에서 찾게됨 또 없다면 ? outer 안에있는 외부참조정보를 타고계속 찾게된다는뜻
스코프 체인 ?
식별자의 유효범위 안에서부터 바깥으로 차례로 검색해나가는것
반응형
'프론트엔드 > JavaScript' 카테고리의 다른 글
[23일] array method (1) | 2022.12.01 |
---|---|
[22일] this (0) | 2022.12.01 |
[16일차] SPA (2) | 2022.11.21 |
[Deepdive] 22장 this (0) | 2022.04.13 |
[Deepdive] 21장 빌트인객체 (0) | 2022.04.11 |