jQuery 소스 학습 1

오늘 현재 최신 버전의 jQuery, jquery-1.3.2를 다운로드했습니다.js, jQuery 원본 배우기 시작
jQuery는 ExtJS와 많이 다르기 때문에 ExtJS는 비교적 방대하다. 예를 들어 분류가 비교적 명확하고 동적 방법, 정적 방법, 속성 등은 보자마자api만 봐도 잘 알 수 있다.ExtJS가 그렇게 하는 것은 그가 비교적 큰 틀이지만 jQuery는 도구 라이브러리일 뿐이다. 작고 유연한 것이 특징이기 때문에 jQuery에서 우리는 많은 용법을 볼 수 있다. 우리는 평소에 그렇게 사용한 적이 없다.
1.downloadjquery-1.3.2.js 후 원본 코드를 열면 전체 jquery의 구조가

(function(){
  .....//    
})();

이 중간 생략 부분은 jQuery의 주요 코드 구현 부분이다.처음에 보니까 잘 안 보였는데 나중에 천천히 연구해 보니 첫 번째 괄호 안에 js 함수가 있었어요.
일반적으로 쓰기 함수는 다음과 같습니다.

//       
function functionName(){
  .....
}
//    
functionName();

jQuery의 첫 번째 괄호 안에 있는 그 함수는 함수 이름만 생략한 것이니 여기서 잠시 익명 함수라고 하자. 괄호로 묶으면 우선순위를 높이기 위해 처리할 뿐이다.
즉, "(function () {})"을 함수 이름 jquery Fun으로 바꾸고, 다시 보면, 이때가 된다.
jqueryFun();
이게 바로 jqueryFun이라는 함수를 호출한 거 아닙니까!
이렇게 보면, 우리가 jquery를 웹 페이지에 가져올 때, jqurey 코드가 불러오기만 하면 jQuery 기능을 즉시 실행합니다.

(function(){
var 
	window = this,
	undefined,
	_jQuery = window.jQuery,
	_$ = window.$,
	jQuery = window.jQuery = window.$ = function( selector, context ) {
		return new jQuery.fn.init( selector, context );
	},
        quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
	isSimple = /^.[^:#\[\.,]*$/;

})();

위의 몇 줄의 코드는 주로 jQuery를 초기화하기 전의 일부 조정입니다. jQuery의 실행을 가속화하기 위해
예를 들어 jQuery = window.jQuery = window.$,jQuery, $를 등가하면 뒤에 $기호를 사용할 수 있습니다.
이렇게 하면 jQuery를 window의 속성으로 등록합니다. 이렇게 하면 jQuery와 $를 사용합니다. 예를 들어 documnt 등 window 아래의 다른 속성을 사용합니다.
그리고 Return new jQuery.fn.init( selector, context );jQuery 관련 설정의 초기화 작업을 진행합니다!
quickExpr와 isSimple은 두 가지 정규 표현식이고, quickExpr는 html 라벨을 검사하고, isSimple는 검사selector를 검사한다.
jQuery 작성자의 설명에 따르면:

// A simple way to check for HTML strings or ID strings
// (both of which we optimize for)
quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
// Is it a simple selector
isSimple = /^.[^:#\[\.,]*$/; 

좋은 웹페이지 즐겨찾기