JS의 범위는 비교적 복잡한 것입니다
JS의 범위는 함수가 정의될 때 함수가 정의된 범위가 아니라 함수가 정의된 범위입니다. 도메인이라고 합니다.
함수가 호출되면 새로운 범위가 생성됩니다. 이 범위에서 var로 정의된 변수는 일반적으로 함수 실행이 완료된 후 이 호출에 의해 생성된 범위입니다. 시스템.
함수 트랩이 정의되면 내부에 정의된 함수가 저장되는 경우(예: 전역 변수에 할당) 그런 다음 자신이 위치한 범위(외부 함수를 호출할 때 생성된 범위)도 함께 저장해야 합니다. 즉, 외부 함수의 실행이 끝나면 이 호출 중에 생성된 범위는 다음에 의해 재활용되지 않습니다. 시스템에서 함수가 재활용되면 저장될 때까지 기다려야 합니다. 시스템에서 함께 재활용됩니다.
Scope Saved 물론 이 범위의 모든 지역 변수도 저장됩니다.