-
실행 컨텍스트JavaScript 2022. 9. 23. 23:53
스코프, 호이스팅, this, 함수, 클로저 등 일련의 동작 원리.
실행 컨텍스트의 3가지 객체 : 변수객체, 스코프체인, this
var x = 'xxx'; function foo () { var y = 'yyy'; function bar () { var z = 'zzz'; console.log(x + y + z); } bar(); } foo();
1.Variable Object (VO / 변수객체)
Variable Object는 아래의 정보를 담는 객체이다.
- 변수
- 매개변수(parameter)와 인수 정보(arguments)
- 함수 선언(함수 표현식은 제외)
그런데 변수객체는 전역인지 함수인지 그 맥락(context)에 따라, 실행 컨텍스트의 프로퍼티로서 가지는 값이 다르다.
2. Scope Chain (SC) : 주먹은 가깝고(AO) 법은 멀다(GO)
스코프 체인(Scope Chain)은 일종의 리스트.
전역 객체와 중첩된 함수의 스코프의 레퍼런스를 차례로 저장, 해당 전역 또는 함수가 참조할 수 있는 변수, 함수 선언 등의 정보를 담고 있는 전역 객체(GO) 또는 활성 객체(AO)의 리스트를 가리킨다.
현재 실행 컨텍스트의 활성 객체(AO)를 선두로 하여 순차적으로 상위 컨텍스트의 활성 객체(AO)를 가리키며 마지막 리스트는 전역 객체(GO)를 가리킨다.
3. this value
this 프로퍼티에는 this 값이 할당된다. this에 할당되는 값은 함수 호출 패턴에 의해 결정된다.
'JavaScript' 카테고리의 다른 글
JWT (JSON Web Token) (0) 2022.09.25 this (0) 2022.09.25 스코프 (1) 2022.09.23 호이스팅 Hoisting (0) 2022.09.23 불변성에 대해2 : Nested Object, 방어적 복사, 불변객체생성 (0) 2022.09.23