JS 범위 및 범위 체인에 대한 자세한 설명: //m.sbmmt.com/js-tutorial-8031.html
기사 추천하기 이해하기 어려운 문장입니다. 코드가 환경에서 실행될 때, 변수 개체의 범위 체인을 만듭니다. 범위 체인의 목적은 실행 환경이 액세스하는 모든 변수 및 함수에 대한 순서화된 액세스를 보장하는 것입니다. 범위: 변수의 범위는 프로그램 소스 코드에 정의된 변수의 영역입니다. (변수의 범위는 메소드가 실행될 때가 아니라 변수가 정의될 때 결정됩니다.)
es5에는 함수 범위와 전역 범위라는 두 가지 범위가 있습니다.js 코드(전역 코드 또는 함수)의 각 부분에는 그들과 관련된 범위 체인. 이 범위 체인은 개체의 목록 또는 연결된 목록입니다. 이 개체 그룹은 이 코드에서 "범위 내" 변수를 정의합니다. js가 변수 x의 값을 찾아야 하는 경우(이 프로세스를 변수 해상도라고 함) 체인의 첫 번째 개체에서 시작합니다. 이 개체에 x라는 속성이 있으면 이 속성의 값을 직접 사용합니다. . 첫 번째 개체에 x라는 속성이 없으면 js는 체인에서 다음 개체를 계속 찾습니다. 두 번째 객체에 여전히 x라는 속성이 없으면 계속해서 다음 객체를 찾습니다. 범위 체인의 개체에 x 속성이 포함되어 있지 않으면 x가 이 코드의 범위 체인에 존재하지 않는 것으로 간주되어 결국 ReferenceError 예외가 발생합니다. 요약: 범위 체인의 기능은 변수에 대해 이 체인에 따라 값을 찾을 수 있다는 것입니다. 첫 번째 항목을 찾으면 더 이상 이 범위 및 범위 체인을 검색할 수 없습니다. 변수가 정의될 때 결정되며 실행 순서와는 아무런 관련이 없습니다. 몇 가지 질문:함수 c가 정의될 때 범위를 구성하고 이전 범위가 자체 실행 함수가 아닌 전역 범위이기 때문에 이 코드의 실행 결과는 3입니다(
함수 도메인 및 스코프 체인은 변수 정의 시 결정되며 실행 순서와는 아무런 관련이 없습니다. )for 문 외부에 i가 인쇄될 수 있는 이유는 js 문이 A 범위로 구성되지 않기 때문입니다. , 그 범위는 여전히 전 세계에 속합니다. var를 let으로 변경하면 오류가 보고됩니다. 시도해 보세요
이 질문은 이해하기 전에 여러 번 주의 깊게 이해해야 합니다. 아직은 설명을 쓰지 않겠습니다. . 생각하다. . .
이 질문에는 프로토타입 체인에 대한 올바른 이해가 필요합니다. 실행 결과는
관련 기사:
js의 범위 체인 및 프로토타입 체인 및 프로토타입 상속
프로토타입 및 프로토타입에 대한 자세한 설명 chain of js
JavaScript 고급 프레임워크 디자인 동영상 튜토리얼
위 내용은 js의 프로토타입 체인과 스코프 체인의 이해와 이 포인팅의 문제점 [그림]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!