jQuery學習筆記之extend方法小結

在學習jQuery的時候,學習到了$.extend的主要用法,在此作一個簡單的總結。html

(1)當只寫一個對象自變量時,拓展的是jQuery的工具方法,如:工具

$.extend({
    aaa:function(){alert('a')},
    bbb:function(){alert('b')}
    })

調用就是$.aaa();  $.bbb();
也能夠拓展jQuery對象的方法,如:學習

$.fn.extend({
    aaa:function(){alert(1)},
    bbb:function(){alert(2)}
    })

調用方式是$().aaa();  $().bbb();spa

還有一點須要注意,jQuery的工具拓展方法和對象的拓展方法是指向同一個引用的,jQuery.extend = jQuery.fn.extend = function() {}code

(2)拓展對象,$.extend(dest,src1,src2,src3...),其中dest表示合併後的對象,如:htm

new1={name:'jimmy',age:20};
new2={age:18,sex:'female'};
new3={ sex:'male',family:'brother'}
newobj={}
var newEst=$.extend(newobj,new1,new2,new3);

運行結果爲對象

從結果能夠看出newobj對象合併了其它三個對象的屬性,已有的屬性,則替換值,沒有的屬性合併加進來;blog

(3)拓展對象,$.extend(boolean,dest,src1,src2,src3...),第一個參數爲boolean,表明是否進行深度拷貝,例:ci

city1={ name:'jack',age:128,location:{from:'USA',state:'good'}};
city2={ name:'jack',age:18,location:{from:'CN',city:'CQ'}};
var newcity1=$.extend(true,city1,city2);
var newcity2=$.extend(false,city1,city2);
console.log(newcity1);
console.log(newcity2);

newcity1的結果爲,能夠看出location對象中,也進行了拷貝;get

 

newcity1的結果爲,能夠看出只是將city2中的location,進行合併,並無進行內部內容的合併。

 

 

在本身學習的過程當中,也看到了許多有關jQuery.extend()方法總結的很是好的博文,並進行了參考,很是感謝。

參考博文:http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html

相關文章
相關標籤/搜索