jQuery, extend 및 fn.extend 구별 분석

1510 단어 jquery
jQuery는 다음과 같은 두 가지 방법으로 플러그인을 개발합니다.
 
    
jQuery.fn.extend(object);
jQuery.extend(object);

jQuery.extend(object); jQuery 클래스 자체를 확장하기 위해서입니다.클래스에 새로운 방법을 추가합니다.
jQuery.fn.extend(object);jQuery 객체에 메서드를 추가합니다.
fn이 뭐지?jQuery 코드를 보면 쉽게 찾을 수 있습니다.
 
    
jQuery.fn = jQuery.prototype = {
   init: function( selector, context ) {//.... 
   //......
};

원래 jQuery.fn = jQuery.prototype.프로토타입이 낯설지 않을 거예요.
자바스크립트는 명확한 클래스 개념이 없지만 클래스로 이해하면 더욱 편리하다.
jQuery는 아주 잘 봉인된 클래스입니다. 예를 들어 문장 $("#btn1") 을 사용하면 jQuery 클래스의 실례를 만들 수 있습니다.
jQuery.extend(object);jQuery 클래스에 클래스를 추가하는 방법은 정적 방법을 추가하는 것으로 이해할 수 있습니다.예:
 
    
$.extend({
  add:function(a,b){return a+b;}
});

jQuery에dd의'정적 방법'을 추가하면 jQuery를 도입한 곳에서 이 방법을 사용할 수 있습니다.
$.add(3,4);//return 7
jQuery.fn.extend(object); 그래, jQuery.prototype 확장은 jQuery 클래스에 '구성원 함수' 를 추가하는 것입니다.jQuery 클래스의 실례는 이 '구성원 함수' 를 사용할 수 있습니다.
예를 들어 우리는 플러그인을 개발하여 특수한 편집 상자를 만들어야 한다. 이 플러그인이 눌렸을 때, 현재 편집 상자의 내용을 알 수 있다.다음을 수행할 수 있습니다.
 
    
$.fn.extend({
alertWhileClick:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
$("#input1").alertWhileClick(); // :<input id="input1" type="text"/>

좋은 웹페이지 즐겨찾기