js中的oop(二)

(二)理解jquery的$.extend()和$.fn.extend()

    a.jQuery.fn = jQuery.prototype
    b.jQuery.extend(object)
        I.为jQuery类添加类方法即添加静态方法。如:
            jQuery.extend({
              min:function(a,b){return a < b ? a : b},
              max:function(a,b){return a > b ? a :b}
            });
            jQuery.min(2,3);//2
            jQuery.max(2,3);//3
    c.jQuery.extent(target,object1,[objectN])
        I.用一个或者多个其他对象扩张一个对象,返回被扩展的那个对象。如:
            var settings = {validate:false,limit:5,name:'foo'};
            var options = {validate:true,name:'bar'};
            jQuery.extend(settings,options);//settings = {validate:true,limit: 5,name: "bar"};
    d.对jQuery.prototype进行扩展,jQuery类添加成员函数。如:
        I.$.fn.extend({
            alertClick:function(){
              $(this).click(function(){
                alert($(this).val());
              });
            }
          });
          $('#input1').alertClick();
    e.总结:
        jQuery.extend()的调用并不会把方法扩展到对象的实例上,只能通过jQuery类来引用扩展的方法,如jQuery.init();
        jQuery.fn.extend()的调用把方法扩展到了对相当prototype,因为js是基于原型继承的,所以方法就扩展到对象实例上。

(三)Java面向对象知识点总结

你可能感兴趣的:(js中的oop(二))