>  기사  >  웹 프론트엔드  >  Javascript 범위 chain_javascript 기술의 8포인트 요약

Javascript 범위 chain_javascript 기술의 8포인트 요약

WBOY
WBOY원래의
2016-05-16 17:10:241492검색

1. JavaScript 함수의 범위 체인은 정의 시간 범위 체인과 런타임 범위 체인으로 구분됩니다.

2. 함수가 정의되면 정의 범위 체인을 나타내는 [[scope]] 속성이 있습니다. 정의 범위 체인 [[scope]]은 다음 규칙을 따릅니다. 함수의 정의 범위 체인 [ [scope]]는 항상 해당 함수가 위치한 외부 함수의 실행 범위 체인입니다.

3. 전역 함수의 정의 범위 체인에는 창 속성만 포함됩니다.

4. 함수의 실행 범위 체인은 항상 정의 범위 체인의 선두에 있는 현재 활성 개체(인수, 매개변수 및 지역 변수 포함)로 푸시됩니다.

5. 함수 실행 시 항상 스코프 체인의 위에서 아래로 변수 주소를 검색하므로 전역 변수의 주소 지정 속도가 가장 느립니다.

6. 내부 기능이 실행되면 전체 범위 체인에 계속 액세스할 수 있습니다. 이것이 클로저가 런타임 시 완성된 외부 함수에 의해 정의된 변수에 액세스할 수 있는 이유입니다.

7. 함수 실행 중에 with 문이 발견되면 with로 지정된 객체의 모든 속성이 범위 체인의 맨 위로 일시적으로 푸시됩니다.

8. 함수 실행에서 catch가 발생하면 catch로 지정된 오류 개체가 범위 체인의 맨 위로 일시적으로 푸시됩니다.

예를 들어 이해를 돕기 위해 범위 체인을 그려보겠습니다.

이런 코드가 있습니다.

코드 복사

코드는 다음과 같습니다. function 할당Events() { var id = "xdi9592"; document.getElementById("save-btn").onclick = function(event){
saveDocument(id);
} ;
}


이 함수 Closure에 의해 생성된 익명 클로저를 호출하고, 다음 그림을 그려서 할당이벤트가 실행될 때의 스코프 체인과 클로저가 정의될 ​​때의 스코프 체인을 보여줍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.