1. LE - outer
- 주요 용어
- 1. 스코프
- a. 식별자에 대한 유효범위를 의미
- b. 대부분 언어에서 존재
- 2. 스코프 체인
- a. 식별자의 유효범위를 안에서부터 바깥으로 차례로 검색해 나가는 것
- 3. outer
- 스코프 체인이 가능토록 하는 것(외부 환경의 참조정보)
외부 환경의 참조 정보라는 말에 집중
◎스코프체인
1. outer는 현재 호출된 함수가 선언될 당시(중요!) 의 LE를 참조
2. 예를 들어, A함수 내부에 B함수 선언 → B함수 내부에 C함수 선언(Linked List) 한 경우
3. 결국 타고, 타고 올라가다 보면 전액 컨텍스트의 LE를 참조 하게 됨
4. 항상 outer는 오직 자신이 선언된 시점의 LE를 참조, 가장 가까운 요소부터 차례대로 접근 가능
5. 결론 : 무조건 스코프체인 상에서 가장 먼저 발견된 식별자에게만 접근 가능
//아래 코드를 직접 call stack을 그려가며 scope 관점에서 변수에 접근해보자.
var a = 1;
var outer = function () {
var inner = function () {
console.log(a); // 이 값은 뭐가 나올지 예상해보자.
var a = 3;
};
inner();
console.log(a); // 이 값도 뭐가 나올지 예상해보자.
};
outer();
console.log(a); // 이값은 뭐가 나올지 예상해보자.
※ 각각의 실행 컨텍스트는 LE 안에 record와 outer를 가지고 있고, outer 안에는 그 실행 컨텍스트가 선언될 당시의 LE정보가 다 들어있으니 scope chain에 의해 상위 컨텍스트의 record를 읽어 올 수 있다.※
▲outer 입장에서는 전역 컨텍스트
'JavaScript > 3주차' 카테고리의 다른 글
11. this 우회방법, 콜백 함수 this, 생성자 함수 this (0) | 2023.05.24 |
---|---|
10. this (전역공간 this, 함수 this, 메서드 this) (0) | 2023.05.24 |
8. record와 호이스팅 2 (함수의 호이스팅) (0) | 2023.05.24 |
7. record와 호이스팅 1 (0) | 2023.05.24 |
6. 실행 컨텍스트 및 콜 스택 소개 (0) | 2023.05.24 |