$.extend 函數(shù)使用詳情

JQuery的擴展方法extend是我們在寫插件的過程中常用的方法琉历,該方法有一些重載原型将谊,在此屋匕,我們一起去了解了解蹂析。

一舔示、JQuery的擴展方法原型是:

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

它的含義是將src1,src2,src3...合并到dest中,返回值為合并后的dest,由此可以看出該方法合并后,是修改了dest的結(jié)構(gòu)的电抚。如果想要得到合并的結(jié)果卻又不想修改dest的結(jié)構(gòu)惕稻,可以如下使用:

var newSrc=$.extend({},src1,src2,src3...)//也就是將"{}"作為dest參數(shù)。

這樣就可以將src1,src2,src3...進(jìn)行合并蝙叛,然后將合并結(jié)果返回給newSrc了俺祠。如下例:

var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})

那么合并后的結(jié)果

result={name:"Jerry",age:21,sex:"Boy"}

也就是說后面的參數(shù)如果和前面的參數(shù)存在相同的名稱,那么后面的會覆蓋前面的參數(shù)值借帘。

二蜘渣、省略dest參數(shù)

上述的extend方法原型中的dest參數(shù)是可以省略的,如果省略了肺然,則該方法就只能有一個src參數(shù)蔫缸,而且是將該src合并到調(diào)用extend方法的對象中去,如:

  • 1际起、$.extend(src)
    該方法就是將src合并到j(luò)query的 全局對象 中去拾碌,如:
$.extend({
   hello:function(){alert('hello');}
});

就是將hello方法合并到j(luò)query的全局對象中吐葱。

  • 2、$.fn.extend(src)
    該方法將src合并到j(luò)query的 實例對象 (jQuery.fn = jQuery.prototype)中去校翔,如:
$.fn.extend({
  hello:function(){alert('hello');}
});

就是將hello方法合并到j(luò)query的實例對象中弟跑。
下面例舉幾個常用的擴展實例:

$.extend({net:{}});

這是在jquery全局對象中擴展一個net命名空間。

$.extend($.net,{
  hello:function(){alert('hello');}
})

這是將hello方法擴展到之前擴展的Jquery的net命名空間中去防症。

三孟辑、Jquery的extend方法還有一個重載原型:

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

第一個參數(shù)boolean代表是否進(jìn)行深度拷貝,其余參數(shù)和前面介紹的一致告希,什么叫深層拷貝扑浸,我們看一個例子:

var result=$.extend( true, {}, 
{ name: "John", location: {city: "Boston",county:"USA"} }, 
{ last: "Resig", location: {state: "MA",county:"China"} } );

我們可以看出src1中嵌套子對象location:{city:"Boston"},src2中也嵌套子對象location:{state:"MA"},第一個深度拷貝參數(shù)為true烧给,那么合并后的結(jié)果就是:

result={name:"John",last:"Resig",
location:{city:"Boston",state:"MA",county:"China"}}

也就是說它會將src中的嵌套子對象也進(jìn)行合并燕偶,而如果第一個參數(shù)boolean為false,我們看看合并的結(jié)果是什么础嫡,如下:

var result=$.extend( false, {}, 
{ name: "John", location:{city: "Boston",county:"USA"} }, 
{ last: "Resig", location: {state: "MA",county:"China"} } 
);

那么合并后的結(jié)果就是:

result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}

以上就是$.extend()在項目中經(jīng)常會使用到的一些細(xì)節(jié)指么。

作者:zikai,原文鏈接:http://www.cnblogs.com/zikai/p/5074686.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榴鼎,一起剝皮案震驚了整個濱河市伯诬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巫财,老刑警劉巖盗似,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異平项,居然都是意外死亡赫舒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門闽瓢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來接癌,“玉大人,你說我怎么就攤上這事扣讼∪泵停” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵椭符,是天一觀的道長荔燎。 經(jīng)常有香客問我,道長销钝,這世上最難降的妖魔是什么有咨? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮曙搬,結(jié)果婚禮上摔吏,老公的妹妹穿的比我還像新娘鸽嫂。我一直安慰自己,他們只是感情好征讲,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布据某。 她就那樣靜靜地躺著,像睡著了一般诗箍。 火紅的嫁衣襯著肌膚如雪癣籽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天滤祖,我揣著相機與錄音筷狼,去河邊找鬼。 笑死匠童,一個胖子當(dāng)著我的面吹牛埂材,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汤求,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俏险,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扬绪?” 一聲冷哼從身側(cè)響起竖独,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挤牛,沒想到半個月后莹痢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡墓赴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年竞膳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竣蹦。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡顶猜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痘括,到底是詐尸還是另有隱情长窄,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布纲菌,位于F島的核電站挠日,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翰舌。R本人自食惡果不足惜嚣潜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椅贱。 院中可真熱鬧懂算,春花似錦只冻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垮媒,卻和暖如春舍悯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背睡雇。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工萌衬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人它抱。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓秕豫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抗愁。 傳聞我的和親對象是個殘疾皇子馁蒂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容