인사이드 자바스크립트를 공부하며 정리하는 포스팅입니다.
스코프 체인
자바스크립트에서 굉장히 중요한 개념입니다.
스코프 체인, 즉 유효범위인데 c++과는 다른 유효범위를 가지고 있기 때문에 주의해야합니다.
오직 함수만이 유효 범위의 한 단위가 되고 [[scope]] 프로퍼티로 각 함수 객체 내에서 연결 리스트 형식으로 관리됩니다.
이를 스코프 체인이라 합니다.
각각 함수는 [[scope]]프로퍼티로 자신이 실행된 실행 컨텍스트의 스코프 체인을 참조합니다. 함수가 실행되는 순간 실행 컨텍스트가 만들어지고 이 실행 컨텍스트는 실행된 함수의(실행된 함수가 속한 실행 컨텍스트의 scope) [[scope]] 프로퍼티를 기반으로 새로운 스코프 체인을 만듭니다.
스코프 체인
1. 현재 실행되는 함수 객체의 [[scope]] 프로퍼티를 복사한다.
2. 새롭게 생성된 변수 객체(활성 객체)를 맨앞에 추가한다.
-> 스코프 체인 = 현재 실행 컨텍스트의 변수 객체 + 상위 컨텍스트의 스코프 체인
var name = 'song'; function printName() { var age = 29; function printAge(){ console.log(age); }; console.log(name); };
위와 같은 예제의 스코프 체인을 그려 보면 다음과 같습니다.
이렇게 만들어진 스코프 체인으로 식별자 인식이 이루어집니다. 식별자 인식은 첫 번째 변수 객체부터 시작하여 해당하는 프로퍼티가 있는 지 탐색하고, 발견하지 못하면 다음 객체로 이동하며 탐색을 진행합니다.
'Web Front > Javascript' 카테고리의 다른 글
위도, 경도 to Pt (0) | 2018.05.03 |
---|---|
[InsideJavascript] 9. 클로저 (0) | 2018.04.27 |
[InsideJavascript] 7. 실행 컨텍스트 (0) | 2018.04.27 |
[InsideJavascript] 6. 프로토타입 체이닝 (0) | 2018.04.27 |
[InsideJavascript] 5. 함수 호출 패턴과 this 바인딩 (0) | 2018.04.27 |