在學習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