$.extend()使用

weixin_34249678發表於2018-10-09

1. jquery.extend(), 為jQuery類新增類方法

例子1

14221967-60075f58d5e53601.png
image.png

例子2

14221967-0c8e5093ea573e2e.png
image.png

呼叫直接用$.類名

14221967-f8cfd18ad3bb2764.png
image.png

2. jquery.extend(), 將兩個或更多物件的內容合併到第一個物件。

14221967-7858e7371b889545.png
image.png

當我們提供兩個或多個物件給$.extend(),物件的所有屬性都新增到目標物件(target引數)。

如果只有一個引數提供給$.extend(),這意味著目標引數被省略。在這種情況下,jQuery物件本身被預設為目標物件。這樣,我們可以在jQuery的名稱空間下新增新的功能。

例子1 合併兩個物件,並修改第一個物件
14221967-00ac1a930fc82530.png
image.png

在預設情況下,通過$.extend()合併操作不是遞迴的;如果第一個物件的屬性本身是一個物件或陣列,那麼它將完全用第二個物件相同的key重寫一個屬性。這些值不會被合併。

例子2 採用遞迴方式合併兩個物件,並修改第一個物件。
14221967-c37c19e2144f14c6.png
image.png

如果將 true 作為該函式的第一個引數,那麼會在物件上進行遞迴的合併。

例子3 合併 defaults 和 options 物件,並且不修改 defaults 物件
14221967-45ad434dff00ea3c.png
image.png

請記住,目標物件(第一個引數)將被修改,並且將通過$.extend()返回。然而,如果我們想保留原物件,我們可以通過傳遞一個空物件作為目標物件:

varobject = $.extend({}, object1, object2);

相關文章