

Variable Object는 유일하며 최상위에 위치하고 모든 전역 변수, 전역 함수 등을 포함하는 전역 객체(Global Object / GO)를 가리킨다. 전역 객체는 전역에 선언된 전역 변수와 전역 함수를 프로퍼티로 소유한다.

Variable Object는 Activation Object(AO / 활성 객체)를 가리키며 매개변수와 인수들의 정보를 배열의 형태로 담고 있는 객체인 arguments object가 추가된다.

var x = 'xxx';
function outer () {
var y = 'yyy';
function inner () {
var z = 'zzz';
console.log(x + y + z);
}
inner();
}
outer();
스코프 체인은 일종의 리스트로 전역 객체와 중첩된 함수의 스코프의 레퍼런스를 차례대로 저장하고 있다. 즉, 전역 또는 함수가 참조할 수 있는 변수, 함수, 선언 등의 정보를 담고있는 전역 객체(GO) 또는 활성 객체(AO)의 리스트.
현재 실행 컨텍스트의 활성 객체를 선두로 순차적으로 상위 컨텍스트의 활성 객체를 가리키며 마지막에는 전역 객체를 가리킨다 하지만 검색에 실패하면 정의되지 않은 변수에 접근하는 것으로 판단하여 Reference 에러를 발생시킨다.
스코프 체인은 함수의 감추인 프로퍼티인 [[Scope]]로 참조할 수 있다.
스코프 체인은 식별자 중에서 객체(전역 객체 제외)의 프로퍼티가 아닌 식별자, 즉 변수를 검색하는 메커니즘이다. 식별자 중에서 변수가 아닌 객체의 프로퍼티(물론 메소드도 포함된다)를 검색하는 메커니즘은 프로토타입 체인(Prototype Chain)이다.

this에 할당되는 값은 함수 호출 패턴에 의해 결정된다.