jquery의 프레임워크 해석 (1)

jquery의 프레임워크는 대부분의 js를 사용한 사람들에게 더 이상 익숙할 수 없다고 생각합니다.하지만 jquery의 원본을 진지하게 연구한 사람은 드물다.다음은 제가 며칠 전에 연구한 이 방면의 성과를 여러분과 함께 나누겠습니다.
여기에서 나는 전체에서 세부적인 설명 방식을 채택한다.
먼저 jquery의 전체 프레임워크를 보십시오:
소스 코드:
(function (){
	//jquery   
})();

첫 번째 괄호 안은 익명 함수이고, 두 번째 괄호는 첫 번째 괄호 안의 코드를 즉시 실행하는 것을 의미한다.
주의: 첫 번째 괄호 다음에 두 번째 괄호를 따라야만 첫 번째 괄호 안의 익명 함수 코드를 실행할 수 있습니다.다시 말하면 이 두 괄호는 하나의 전체이다. 전부 원하든지 아니면 전부 원하지 않든지.첫 번째 괄호를 없애면 익명 함수를 실행하지 못할 뿐만 아니라 js의 오류도 보고할 수 있습니다.
첫 번째 괄호 안의 익명 함수는 페이지를 불러올 때 실행됩니다.
jquery라는 성숙한 js 프레임워크는 반드시 명칭 충돌 문제를 고려할 것이다. 그러면 jquery는 어떤 방식으로 명칭의 충돌을 피합니까?
js에는 명명 공간의 개념이 없다.그러나 우리는 다른 변통적인 방식으로 우리의 목적인 명칭 충돌을 피할 수 있다.바로 여기서 사용하는 방식이다. 모든javascript 함수, 대상은 코드에 적힌 익명 함수에 정의되어 정의된 함수, 대상의 역할 영역이 이 익명 함수에만 한정되어 명명 공간의 역할을 한다.
지식점: var 변수 이름 방식으로 정의된 js 변수는 국부 변수이고 var이 없는 변수는 전역 변수이며 그는 window의 속성으로 나타난다.js에서는 전역 변수 사용을 꺼리기 때문에 모두들 var 변수 이름으로 변수를 정의합니다.
jquery의 변수의 작용역이 이 익명 함수 안에 있는 이상 우리는 어떻게 이 익명 함수 밖에서 사용합니까?jquery에 이런 말이 있는데 다들 눈치채셨는지 모르겠어요.
var jQuery = window.jQuery = function(selector, context)
{//……
};
 
여기에 jquery 프레임워크의 가장 중요한 대상인 jQuery를 window의 속성으로 표시하면 다른 곳에서 마음대로 사용할 수 있습니다.
내가 사용하는 건 다 $이야. jQuery가 아니잖아.사실 jquery에서 $=jQuery를 정의했습니다. 즉, 그들은 같은 이름의 대상입니다.
문서처럼 마음대로 사용하세요.
(function (){    
var window = this;
})();

이렇게 하면 윈도 대상을 얻을 수 있으며, 이 익명 함수에서 윈도를 마음대로 사용할 수 있으며, 이 변수는 js의 윈도 대상과 같다.

좋은 웹페이지 즐겨찾기