舉例分析jQuery.extend()方法

今天大體看了一遍extend方法的源碼,特意過來分享一下本身的理解code

方法jQuery.extend()和jQuery.fn.extend()用於合併兩個或對個對象的屬性到第一個對象對象

syntax:
    jQuery.extend([deep],target,object1,[,objectN])
    jQuery.fn.extend([deep],target.object1,[,objectN])

解釋一下參數的具體做用:
參數deep是boolean型,用於表示是否進行遞歸合併(也叫作深層拷貝)
在此解釋一下什麼是遞歸合併,遞歸合併就是當所要合併的對象具備相同的屬性時,只保留其中的一個屬性,並捨棄其餘的,使合併後屬性惟一
deep默認值爲false;遞歸

來我先舉個例子讓你們對遞歸合併混個臉熟get

$rel = $.extend({}, //使用空對象做爲默認值,這裏使用默認值false            
                {vehicle:'Porsche',color: 'red',feature:'import',
                                speed:    {min:'100',max:'200',average:'150'}},
                {vehicle: 'BMW',color:'blue',
                                speed:{min:'20',max:'40'    }}
)//第二個對象多了一個feature屬性

//輸出爲 {vehicle:'BMW',color:'blue',speed:{min:'20',max:'40'}
//若是這裏用true的話,speed變爲{min:'20',max:'40',average:'150'}

參數target表示合併後的目標對象
參數objectN表示所要進行合併的源對象源碼

但當只提供一個對象時,則忽略目標對象,並將jQuery或jQuery.fn當作目標對象,這個方法用於向jQuery或jQuery.fn對象添加屬性,而且這是個添加屬性的實用技巧import

相關文章
相關標籤/搜索