답변:
뿌리부터 시작하겠습니다 ...
실행 컨텍스트 는 다음으로 구성된 객체입니다.
this
값변수 객체 는 추상적 인 것으로, 다음 중 하나 일 수 있습니다.
window
: document
또는 console
브라우저)가있는 위치활성화 객체 는 다음을 보유한 객체입니다.
arguments
이 함수의 객체따라서 활성화 객체는 변수 객체의 특별한 경우입니다.
기본적으로를 제외하고 함수 내에서 이름으로 액세스 할 수있는 모든 로컬 항목의 컨테이너입니다 this
. 나는 여기에 정확하지 않을 수도 있지만, 그것이 내가 생각하는 것입니다.
멋진 사진으로 더 많은 설명 :
Activation 객체는 실행 함수의 환경과 범위를 설명하는 속성을 보유하는 데 사용되는 객체입니다. 예를 들어 함수 인수가 저장되는 것은이 객체에 있습니다. 정의에 따르면, 무언가를 활성화시키는 것은 그 일을 수행하거나 기능을 일으키는 것입니다. 따라서 'Activation object'가 들리면 'FUNCTION'객체 또는 함수에 대한 LOCAL 인 루트 객체 (FUNCTION LOCAL OBJECT)를 생각하십시오.
Variable 객체와 관련하여 Activation 객체는 그 자체가 ABSTRACT 객체 유형 인 Variable 객체의 구체적인 인스턴스입니다. 여기에 명시된 바와 같이 ...
'가변 객체'라는 용어는 현재 실행중인 컨텍스트의 환경과 범위를 설명하는 속성을 보유하는 객체를 나타내는 데 사용되는 일반 또는 추상 용어입니다.
따라서 전역 실행 컨텍스트의 환경과 범위 내에서 (즉, 함수 외부에있을 때) 전역 객체는 변수 객체입니다. 브라우저에서 전역 또는 가장 바깥 window
쪽으로 실행되는 환경은 브라우저 WINDOW이므로 변수 개체로 사용되는 개체입니다. 이것이 var
함수 외부 에서 키워드로 선언 된 변수 가 window
객체 에서 끝나는 이유 입니다.
그러나 함수 범위에서 변수 개체 인 Activation 개체 (즉, 함수 로컬 개체)는 실행 개체의 범위를 설명하는 속성을 저장하는 데 사용되는 개체이므로 변수 개체입니다.