1. 각 JavaScript 함수는 함수 객체의 인스턴스입니다. JavaScript 엔진에만 액세스 할 수있는 내부 속성 [[SCOPE]]가 있습니다. 이 [[Scope]]는 "스코프 체인"이라고하는 스코프 컬렉션을 저장하고, 수집은 "Mutable Object"vo 또는 "Active Object"를 저장합니다 (AO는 VO보다 더 많은 것과 인수 속성이 있습니다).
2. 함수가 만들어지면, 상위 스코프의 스코프 체인의 모든 변이 가능한 객체가 [[scope]]에 추가됩니다 (부모 스코프가 전역 인 경우 하나의 글로벌 객체 만 현재 함수의 스코프 체인에 추가됩니다).
3. 함수가 실행되면 기능의 실행 환경이 환경 스택으로 밀려 나옵니다.
1. 현재 함수의 변수 초기화 단계가 들어옵니다. 이 단계에서는 내부 기능,이 값, 함수 매개 변수, 함수 선언, 변수 선언 및 인수를 결정합니다. 이러한 값에 기초하여, 현재 함수의 활성 객체 AO가 구성되며 AO 객체는 현재 함수 스코프 체인의 첫 번째 위치로 저장됩니다.
참고 : AO는 다음 순서로 채워집니다.
1. 함수 매개 변수 (매개 변수가 전달되면 지정됩니다. 매개 변수가 전달되지 않으면 초기화 값이 정의되지 않음) 두 번째 우선 순위는 다음과 같습니다.
2. 기능 선언 (생명 이름 충돌이 발생하면 재정의됩니다). 가장 높은 우선 순위는 다음과 같습니다.
3. 변수 선언 (초기화 변수 값은 정의되지 않으며, 생명 이름 충돌이 발생하면 무시됩니다) 우선 순위 3.
2. 그런 다음 함수의 실행 단계입니다. 현재 함수에 사용 된 모든 변수 및 함수 선언은 현재 함수의 [[scope]] 스코프 체인에서 검색됩니다. 스코프 체인의 객체의 위치에 따르면, 현재 함수의 AO 객체가 먼저 검색됩니다. 상단 객체가 없으면 글로벌 객체가 발견됩니다. 없으면 오류가보고됩니다 (변수는 정의되지 않음).
위의 JavaScript 함수 실행 프로세스는 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.