1.3 스코프 체인

박창진·2022년 3월 29일
0

스코프 체인

함수에서 '{ }'을 기준으로 어떤 값에 접근이 가능한가 불가능 한가를 뜻한다.

function c() {
	console.log('c');
    function b() {
    	console.log('b');
    }
}

function a() {
	console.log('a');
    b();
}
a();

* b가 정의 되어있지 않다고 에러가 뜬다.
* b함수는 a에서 접근 가능한 스코프가 아니기 때문이다.

그림 참고

  • c, a의 상위 스코프는 anonymous이고, b의 상위 스코프는 c이다.
  • b가 호출 되면 우선 a함수의 스코프에서 함수b를 찾고, b가 없으면, a의 상위 스코프로 올라가 b의 함수를 찾는다.
  • annoymous까지 올라가 찾고자 하는 함수, 변수가 없으면 스코프 에러가 발생한다.
  • anonymous는 파일 전체, 최상위 스코프라고 생각하자
  • b => c => anonymous 이런 관계를 Lexical Scope라고 한다.

정리

  1. 스코프란 '{ }'을 기준으로 함수, 변수가 접근 가능한 범위를 의미한다.
  2. 스코프 체인은 함수나 변수가 호출되면 우선 호출된 스코프에서 함수, 변수를 찾고, 호출한 스코프에 없으면 상위 스코프, 최상위 스코프까지 올라간다. 이렇게 스코프에서 상위 스코프로 이동하는것을 스코프 체인이라 한다.
profile
I'm SpearJin

0개의 댓글