이번에는 기본 JavaScript 지식 요약을 가져왔습니다. 총 11개의 지식 포인트가 있습니다. 기본 JavaScript 지식 요약 (9) 다음은 실제 사례를 살펴보겠습니다.
범위 정교화
[[범위]]: 모든 JavaScript 함수는 객체입니다. 객체에는 우리가 액세스할 수 있는 속성이 있지만 일부는 액세스할 수 없습니다. 이러한 속성은 JavaScript 엔진에서만 액세스할 수 있으며 [[scope]]는 그 중 하나입니다.
[[scope]]는 런타임 컨텍스트 모음을 저장하는 범위(scope)를 나타냅니다.
범위 체인: [[scope]]에 저장된 실행 컨텍스트 개체 모음, 이 모음을 체인이라고 합니다. 범위 체인 링크
런타임 컨텍스트: 함수가 실행되면 실행 컨텍스트라는 내부 개체가 생성됩니다. 실행 컨텍스트는 함수가 실행될 때의 환경을 정의합니다. 따라서 함수가 실행될 때마다 고유하므로 함수를 여러 번 호출하면 함수 실행이 완료되면 여러 실행 컨텍스트가 생성됩니다. 실행 컨텍스트가 파괴되었습니다
변수 찾기: 스코프 체인의 위에서 아래로 검색하세요
function a() { function b(){ var b = 234; } var a = 123; b(); }var glob = 100; a();
먼저 위의 함수를 살펴보겠습니다. 이것은 전체 함수이고 a는 전역 범위에 있고 그 아래에 glob이 있습니다.
1단계: 우선 시스템이 보는 것은 a의 정의여야 합니다. a가 정의되면 [[범위]]가 됩니다. 이 Position 0은 GO를 가리킨다
Activation Object
0은 이 테이블을 가리킨다
a / [[scope]] scope指向scope chain scope chain scope指向这里
this window window (object) document (object) a (function) glob 100 [[scope]]里面有这个全局的执行期上下文,然后a被执行了,a被执行,a产生的这个AO,把自己的AO存到作用域链的最顶端,形成一个新的作用域链,现在的a的[[scope]]和刚才的那个[[scope]]不一样了 a / [[scope]] scope指向scope chain scope chain scope指向这里
this window arguents [] a 123 b (function) Global Object
을 가리킵니다. 스코프는 여기를 가리킵니다
0 이 위치의 0은 자신의 AO를 가리킵니다. 1 이 위치의 1은 2의 AO를 가리킵니다. 이 위치의 0은 GO
Activation Object
this window window (object) document (object) a (function) glob 100
b / [[scope]]
this window arguents [] b 234; Activation Object
b가 실행되면 자신의 ao를 파괴하고 정의 상태로 돌아가서 다음 실행을 기다린다.
b는 함수 a의 마지막 문장이므로 b가 실행된 후 a도 소멸되고 b의 [[scope]]도 소멸되어 정의 상태로 돌아가 다음 실행을 기다리게 됩니다
this window arguents [] a 123 b (function) Global Object
그래서 외부 함수는
내부 함수기본 JavaScript 지식 요약(6) 함수, 초기 범위(2부)
기본 JavaScript 지식 요약(7) 재귀기본 JavaScript 지식 요약(8)사전 컴파일 실행 과정
위 내용은 기본 JavaScript 지식 요약 (9) 범위 및 범위 체인에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!