>  기사  >  웹 프론트엔드  >  jQuery_jquery의 전반적인 아키텍처에 대한 이해 및 분석

jQuery_jquery의 전반적인 아키텍처에 대한 이해 및 분석

WBOY
WBOY원래의
2016-05-16 18:09:511029검색

jQuery 스크립트의 전체적인 구조는 다음과 같은 형태를 가지고 있습니다.

코드 복사 코드는 다음과 같습니다.
'enhanced' return new
jQuery.fn.init( selector, context ); },
// 전역 객체에 jQuery 노출window.jQuery =
window.$ = jQuery
}) (창);


저는 그런 구조를 잘 이해하지 못하고, 그분이 무엇이라고 부르시는지 깊이 연구해 본 적도 없습니다.
Technorati 태그:
JQuery
,
Javascript
,
Web front-endjs closure의 개념과 관련이 있는 내용을 오늘 확인해 봤습니다. 몇 가지 기본 사항.

코드를 복사하세요
코드는 다음과 같습니다. var fun=function(window, undefine ){ ... ... }
fun(window)




전체 스크립트는 익명 함수(지금은 mainFn이라고 부르겠습니다)), 함수는 로드되면 실행을 시작합니다. mainFn은 두 개의 매개변수를 받을 수 있으며 실행 중에 하나의 매개변수 창만 전달합니다.
1. 자세히 설명:
2. 윈도우 함수 실행 윈도우가 전달되면 전달되는 윈도우는 전역 개체(일반적으로 Window)입니다.
3. 속성과 window=this, 다음과 같이 mainFn 함수에 전달됩니다. 해당 매개변수는
4에 저장됩니다. 프로토타입 체인에서 변수를 찾는 전략은 (비중첩 함수)입니다. 먼저
5를 호출하는 개체를 찾습니다. 그런 다음 전역 객체를 찾으면 전체 mainFn에서 사용되는 창이 검색 효율성이 높아집니다
6. undefed 실행 중에 두 번째 매개 변수가 전달되지 않으므로 undef 변수의 값이 정의되지 않습니다
7. . 이 브라우저의 전역 객체에는 정의되지 않은 속성이 없을 수 있으므로 직접 사용할 수 없습니다. 일반적으로
8. 이 문제를 작성하는 방법은 window.undefine = window.undefine

입니다. 결국 jQuery 라이브러리에서 가장 중요한 객체인 jQuery를 window 객체의 속성으로 만들고, "$"로 축약할 수 있다.

기타 보충 정보:
JQuery는 최근에 Javascript를 작성하는 데 사용했던 훌륭한 Javascript 라이브러리입니다.
전체 및 전역 보기를 살펴보겠습니다. 거의 모든 jQuery 소스 코드는 다음 코드에 있습니다.




코드 복사
코드는 다음과 같습니다. (function() { //...
})()


첫 번째 괄호 안은 익명 함수입니다. 두 번째 괄호는 첫 번째 괄호 안의 코드가 즉시 실행된다는 의미입니다.
먼저 JavaScript에는 네임스페이스가 없다는 점을 이해하세요. JavaScript 함수와 객체가 다른 함수와 충돌하지 않도록 여기에서 JavaScript 트릭이 사용됩니다. 모든 JavaScript 함수와 객체는 익명 함수에 정의됩니다. , 정의된 함수와 객체의 유효한 범위를 보장하고 네임스페이스의 역할을 수행합니다. 범위가 이 익명 함수에 있으므로 다른 사람이 어떻게 사용할 수 있습니까? 아래 코드를 살펴보겠습니다.

var jQuery = window.jQuery = function(selector, context) {
//… ...
};

여기서 jQuery 라이브러리에서 가장 중요한 객체인 jQuery가 window 객체의 속성이 되어 jQuery를 document와 마찬가지로 다른 곳에서도 사용할 수 있게 됩니다. 창 속성). jQuery를 사용해 본 친구들은 놀랄 수도 있습니다. 저는 jQuery 객체를 사용하지 않고 항상 $를 사용합니다. 예, 그것은 동일한 이름의 jQuery 객체입니다:

window.$ = jQuery

이제 이해하셨습니다.

이 라이브러리의 구조는 다음과 같습니다.




코드 복사
코드는 다음과 같습니다. 1. (함수(창, 정의되지 않음){ 2. var document = window.document; 3. var jQuery = ...
4. ...
5. .. .
6. })(window);

(function(window, undefine){ var document = window.document; ... ... })(창)


전체 스크립트는 익명 함수입니다(지금은 mainFn이라고 부르겠습니다). mainFn은 두 개의 매개변수를 수신할 수 있으며 실행 중에 하나의 매개변수 창만 전달합니다.
1. 자세히 쓰는 의미:
2. 윈도우 함수가 실행되면 윈도우가 전달됩니다. 전달된 윈도우는 전역 객체(보통 Window)입니다.
3. mainFn 함수에 전달됨 매개변수로 사용되면
의 호출 개체에 저장됩니다. 4. 프로토타입 체인에서 변수를 찾는 전략은 (비중첩 함수)입니다. 먼저 호출하는 5. 개체를 찾은 다음 전역 개체를 찾으므로 전체 mainFn에서 사용되는 창을 검색하는 것이 더 효율적입니다.
6. 정의되지 않음 실행 중에 두 번째 매개 변수가 전달되지 않으므로 변수 값이 정의되지 않습니다. 초기 버전
7. 브라우저의 전역 객체에는 정의되지 않은 속성이 없을 수 있으므로 일반적으로 이 문제를 작성하는 방법은
8입니다. .한정되지 않은
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.