>웹 프론트엔드 >JS 튜토리얼 >jQuery가 `(function(window, undefine){...})(window);`를 사용하는 이유는 무엇입니까?

jQuery가 `(function(window, undefine){...})(window);`를 사용하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-11 02:45:09751검색

Why Does jQuery Use `(function(window, undefined){...})(window);`?

jQuery에서 JavaScript 캡슐화 구문 탐색

jQuery 1.4 소스 코드를 검사할 때 다음과 같은 캡슐화 구문을 만날 수 있습니다.

(function( window, undefined ) {

  //All the JQuery code here 
  ...

})(window);

이 구문은 "정의되지 않음"의 목적에 대한 의문을 제기합니다.

"정의되지 않음"의 의미

괄호 안의 "정의되지 않음" 변수는 예약어가 아닙니다. 오히려 새로운 값을 할당할 수 있는 일반 변수입니다. 이 경우 jQuery는 전역 "정의되지 않음" 변수가 실제로 정의되지 않은 상태로 유지되도록 "정의되지 않음"을 "정의되지 않음"과 동일하게 설정합니다.

"창"의 중요성

"window" 변수는 전역 JavaScript 개체를 나타냅니다. 익명 함수에 "window"를 인수로 전달함으로써 jQuery는 전역 객체에 대한 로컬 참조를 생성합니다. 이 로컬 참조는 성능을 향상시킵니다.

JavaScript는 변수를 검색할 때 먼저 로컬 범위를 확인합니다. 변수가 로컬에서 발견되지 않으면 전역 범위에 도달할 때까지 다음 범위로 검색이 계속됩니다. 전역 객체에 대한 로컬 참조를 생성함으로써 JavaScript는 모든 범위를 검색할 필요 없이 "창"을 빠르게 찾을 수 있습니다.

이 최적화는 Nicholas C. Zakas가 자신의 기사 "Speed ​​Up Your JavaScript"에서 설명했습니다. ,"는 jQuery 라이브러리의 실행 속도를 크게 향상시킵니다.

위 내용은 jQuery가 `(function(window, undefine){...})(window);`를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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