이번에는 기본 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指向这里1은 이 테이블을 가리킨다
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指向这里그 안에 저장된 값이 다를 뿐이다[[scope]]. 그 [[scope] ], 지금은 다음을 보지 않습니다. 이때 변수에 액세스하면 a의 [[scope]]에 액세스하고 a의 [[scope]]에서 항목을 가져옵니다. A의 스코프는 창고입니다. 이 라이브러리에는 스코프 체인이 저장되어 있으며, 거기에 다양한 변수가 걸려 있습니다. 뭔가를 얻으러 갈 때 위쪽과 아래쪽을 살펴봅니다. 그러면 b의 정의에서 a의 실행은 b를 실행한 후에만 정의될 수 있습니다. b가 정의되면 자연스러운 [[범위]]가 있고 [[범위]]에는 있어야 하는 것이 저장됩니다. 스코프 체인이지만 해당 스코프 체인은 a의 스코프 체인과 다릅니다. a가 정의되면 전역에 있고 액세스할 수 있는 유일한 속성은 자신의 AO 및 전역 GO이지만 b는 a에 정의되어 있습니다. 함수이므로 b의 [[scope]]는 자체 AO뿐만 아니라 a의 AO에도 액세스할 수 있으며 전역 GO
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 1001 이 테이블을 가리킨다
b / [[scope]]1 이 테이블을 가리킨다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!