>  기사  >  웹 프론트엔드  >  JavaScript function_javascript 스킬 실행 과정

JavaScript function_javascript 스킬 실행 과정

WBOY
WBOY원래의
2016-05-16 09:00:211849검색

1. 각 JavaScript 함수는 JavaScript 엔진에서만 액세스할 수 있는 내부 속성 [[Scope]]을 갖는 Function 개체의 인스턴스입니다. Scope]]는 "범위 체인"이라고 하는 범위 컬렉션을 저장합니다. 이 컬렉션은 "변수 개체" VO 또는 "활성 개체" AO를 저장합니다(AO는 VO보다 this 및 인수 속성이 더 많습니다).

2. 함수가 생성되면 상위 범위의 범위 체인에 있는 모든 변경 가능한 객체가 [[scope]]에 추가됩니다(상위 범위가 전역인 경우 현재 함수의 범위 체인에 하나의 전역 개체만 추가됩니다.

3. 함수가 실행되면 함수의 실행 환경이 환경 스택으로 푸시됩니다.

1. 이때 함수의 변수 초기화 단계에 들어갑니다. 이 단계에서는 이 값, 함수 매개변수, 함수 선언, 변수 선언 및 인수를 결정합니다. 현재 함수의 활성 개체 AO가 형성됩니다. 그러면 AO 개체가 현재 함수 범위 체인의 맨 위에 저장됩니다.

참고: AO는 다음 순서로 채워집니다.

1. 함수 매개변수(매개변수가 전달되면 값이 할당되고, 매개변수가 전달되지 않으면 초기값이 정의되지 않음), 두 번째 우선순위
2. 함수 선언(이름 충돌이 발생하면 덮어쓰임)이 가장 우선순위가 높습니다
3. 변수 선언 (변수 값을 undefine으로 초기화, 이름 충돌이 발생하면 무시됨) 3순위
2. 다음은 함수의 실행 단계입니다. 이 단계에서는 현재 함수의 [[Scope]] 범위 체인에서 현재 함수에 사용된 모든 변수와 함수 선언을 검색합니다. 현재 함수의 AO 객체가 상위 객체를 검색하지 않으면 최종적으로 전역 객체를 찾습니다(변수는 다음과 같습니다). 정의되지 않음).

위 JavaScript 함수의 실행 과정은 모두 에디터가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. Script Home을 지원해 주시길 바랍니다.

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