$.extend(obj)和$.fn.extend(obj)的区别

$.extend(obj):

扩展jquery本身,添加方法:

$.extend({
add:function(a,b){
return a+b;
}
})
$.add(5,8) //return 13

这里是直接调用,$.add(5,8);不加任何对象。

$.fn.extend(obj):

对prototype进行扩展,为jquery类添加成员函数, jquery类的实例可以使用这个成员函数。

$.fn.extend({
clickwhile:function(){
$(this).click(function(){
alert($(this).val()) 
})
}
})
$('input').clickwhile();//当点击输入框会弹出该对象的Value值

$.extend()合并多个结构:

    value=$.extend({}{sa:"asdf"},{sd:"adsfasd"},"dsaf");
    alert(value.sa);

value的值为:object(sa:"asdf",sd:"absfasd","dsaf");

    value=$.extend({}{sa:"asdf"},{sa:"adsfasd"},"dsaf");
    alert(value.sa);

value的值为:object(sa:"adsfasd","dsaf"); 后面相同名字的结构的内容会覆盖前面的内容。

$.extend()原型:

extend(dest,src1,src2,src3...);

它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest 。

可以省略dest,用法就像最开始的$.extend(obj),将整个Jquery当成dest函数,给他赋值。

看一个例子就完全明白了:

var arr=new Array("xieyutian","lizhenjing","helloworld","tianlanihao");
$(document).ready(function(){
    value=$.extend({ss:function(){
        alert("OK");}},{sa:"adsfasd"},"dsaf");
    dump_obj(value);
});

function dump_obj(myObject) {  
      var s = "";  
      for (var property in myObject) {  
       s = s + "
 "+property +": " + myObject[property] ;  
      }  
      alert(s);  
    }  

他会输出:

0: d
1: s
2: a
3: f
ss: function (){
alert("OK");}
sa: adsfasd

原文地址:https://www.cnblogs.com/canbefree/p/3729229.html