jquery的$.extend和$.fn.extend区别

$.extend(obj);是为了扩展jquery本身,为类添加新的方法

$.fn.extend(obj);给JQUERY对象添加方法。


$.extend({

        add:function(a,b){

            return a+b;
        }

    })

    $.add(5,8) //return  13
直接调用,前面不用任何对象。直接$.+方法名

$.fn.extend({

    clickwhile:function(){

        $(this).click(function(){

             alert($(this).val()) 

        })

    }

})

$('input').clickwhile();//当点击输入框会弹出该对象的Value值

调用时候前面是有对象的。即$('input') 


$.extend()有两种写法

(1)$.extend(obj);
        这是只有一个参数,代表的意义是:为jQuery类添加类方法,可以理解为添加静态方法,也就是全局方法。
(2)$.extend( target, object1,  object2,  object3,  object4,[objectN]);
        这是两个或两个以上的参数,代表的意义是:用一个或多个其他对象来扩展一个对象,返回被扩展的对象。即也就是扩展和覆盖了第一个对象。


$.fn.extend(obj);
     $.fn 中的fn是 原型  的意思
    其实是prototype,即$.fn=$.protoytpe;

$.fn相当于Java类中新增了一方法,所以这个方法是针对所有的类实例对象。

$.extend相当于java类中新了一个静态方法,所以这个方法是针对类来使用的,而不是类实例对象了。






发布了2 篇原创文章 · 获赞 0 · 访问量 1702

猜你喜欢

转载自blog.csdn.net/qq_32758159/article/details/77100693