Identifier Resolution : 식별자의 해석은 어떻게 되는가?

Resolution 이란 단어를 어떻게 해석해야할찌 한참을 고민했다. 결국은 동일한 식별자 이름들이 있을때, 이것을 어떻게 판별해서 가져오는가 하는 내용이기 때문에 대충 Resolution 이 그런 의미로 쓰였음을 알고 다음으로 넘어가자.

원문 : http://www.jibbering.com/faq/faq_notes/closures.html
원문을 A4 용지로 출력하면, 6페이지 마지막 단락에 있는 내용이다.

식별자는 스코프 체인을 통해서 판별된다. ECMA 262 는 this 라는 키워드 대신에 식별자로 목록화를 한다. 이것이 그렇게 불합리한 이야기는 아니다. 왜냐면, 실행문맥 안에서 스코프 체인을 참조하는 참조자가 없을때만 식별자는 this 값에 의해 결정되어 지기 때문이다.

식별자는 스코프 체인 안에 있는 첫번째 객체부터 찾기 시작한다. 그 첫번째 객체의 프로퍼티들의 이름과 찾고자 하는 식별자가 같은 이름인가를 확인한다. 이 스코프 체인은 만약에 객체가 프로퍼티 체인을 가지고 있다면, 그 프로퍼티 체인까지 스코프 체인으로 만들어 버린다. 그렇기 때문에 스코프 체인을 뒤진다는것은 접근할수 있는 모든 식별자들을 뒤져보는것과 마찬가지가 된다.

이런식으로 첫번째 객체를 뒤져도 찾고자 하는 식별자를 찾을수 없을때는 다음 객체를 뒤지고, 또 그다음 객체를 찾아본다. 찾고자 하는 값이 계속 없으면 최종적으로 전역객체까지 찾게된다.

역주)
실행 문맥이 새로 생성될때마다 Activaton 객체가 그 스코프 체인의 맨앞에 놓이기 때문에 함수 내에서의 지역변수가 전역변수 이름과 같을 경우 전역변수는 가려지게 되는것이다.