1. 스코프 체인이란?
- 실행컨텍스트 내용에서 스코프 정보에 대한 이야기를 했었다.
- 대강 다시 설명하자면, 실행 컨텍스트가 생성되면 js엔진은 해당 컨텍스트에서 실행에 필요한 여러가지 정보를 담은 "활성객체"라는 객체를 생성하는데, 이 활성 객체에 함수의 인자들을 유사 배열 형태로 담는 arguments라는 객체가 생성되고, 현재 컨텍스트의 유효범위를 나타내는 스코프 정보를 생성, 이후 변수생성과 this 바인딩을 한다고 하였다.
- 스코프 정보는 현재 실행중인 실행 컨텍스트 안에서 연결 리스트와 유사한 형식으로 만들어진다 하였는데, 이 리스트를 "스코프 체인"이라고 한다 하였다. [[scope]] 프로퍼티로 참조된다.
- 다시 설명하자면, 유효 범위를 나타내는 스코프가 [[scope]] 프로퍼티로 각 함수 객체 내에서 연결리스트 형식으로 관리되는데, 이 스코프간의 상하관계를 "스코프 체인"이라고 한다는 것이다.
- 그렇다면 변수의 스코프란? 이라는 질문은 무엇을 묻는 질문일까?
이는 선언된 변수가 어느 위치에서 유효한가를 묻는다고 보면 된다.
댓글 영역