js插件之$.extend()、$.fn和$.fn.extend()区别



jQuery为开发插件提拱了两个方法,

jQuery.fn.extend();

jQuery.extend();


 jQuery.fn = jQuery.prototype;

$(“#btn1″) 会生成一个 jQuery类的实例,即可以直接调用jQuery.prototype里面的方法。

对于jQuery.extend:

1、jquery.extend(obj):为jQuery类添加类方法,可以理解为添加静态方法

如:

[javascript]  view plain  copy
  1. jQuery.extend({  
  2. min: function(a, b) { return a < b ? a : b; },  
  3. max: function(a, b) { return a > b ? a : b; }  
  4. });  
  5. jQuery.min(2,3); //  2   
  6. jQuery.max(4,5); //  5  
2、 jquery.extend( target, object1, [objectN]):用一个或多个其他对象来扩展一个对象,返回被扩展的对象

[javascript]  view plain  copy
  1. var settings = { validate: false, limit: 5, name: "foo" };   
  2. var options = { validate: true, name: "bar" };   
  3. jQuery.extend(settings, options);   
  4. 结果:settings == { validate: true, limit: 5, name: "bar" }  

对于 jQuery.fn.extend:对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。拓展一个对象到jQuery的 prototype里去,这样的话就是插件机制了

[javascript]  view plain  copy
  1. $.fn.extend({            
  2.     alertWhileClick:function() {              
  3.           $(this).click(function(){                   
  4.                  alert($(this).val());             
  5.            });             
  6.      }         
  7. });         
  8. $("#input1").alertWhileClick();   

jQuery为开发插件提拱了两个方法,

jQuery.fn.extend();

jQuery.extend();


 jQuery.fn = jQuery.prototype;

$(“#btn1″) 会生成一个 jQuery类的实例,即可以直接调用jQuery.prototype里面的方法。

对于jQuery.extend:

1、jquery.extend(obj):为jQuery类添加类方法,可以理解为添加静态方法

如:

[javascript]  view plain  copy
  1. jQuery.extend({  
  2. min: function(a, b) { return a < b ? a : b; },  
  3. max: function(a, b) { return a > b ? a : b; }  
  4. });  
  5. jQuery.min(2,3); //  2   
  6. jQuery.max(4,5); //  5  
2、 jquery.extend( target, object1, [objectN]):用一个或多个其他对象来扩展一个对象,返回被扩展的对象

[javascript]  view plain  copy
  1. var settings = { validate: false, limit: 5, name: "foo" };   
  2. var options = { validate: true, name: "bar" };   
  3. jQuery.extend(settings, options);   
  4. 结果:settings == { validate: true, limit: 5, name: "bar" }  

对于 jQuery.fn.extend:对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。拓展一个对象到jQuery的 prototype里去,这样的话就是插件机制了

[javascript]  view plain  copy
  1. $.fn.extend({            
  2.     alertWhileClick:function() {              
  3.           $(this).click(function(){                   
  4.                  alert($(this).val());             
  5.            });             
  6.      }         
  7. });         
  8. $("#input1").alertWhileClick();   

猜你喜欢

转载自blog.csdn.net/sq2879897094/article/details/80090770
今日推荐