[jQuery]函式說明: jQuery.extend()
jQuery.extend(),是 jQuery 用於合併兩個或多個 JavaScript Object 所提供的方法,如果你有用過 git
,那就能更容易的理解他的用途,可以直接把他當作 git 在 merge 的時候來理解他的功能,沒使用過的也沒關係,文章會呈現一些範例可以理解一下 jQuery.extend() 產生的結果
這裡以 objA
,objB
兩個為例:
//object
var objA = {apple: 0,banana: { weight: 52, price: 100 },cherry: 97};
var objB = {banana: { price: 200 },durian: 100};
//jQuery.extend()
var objC = jQuery.extend(objA,objB);
console.log(objC);
得到的結果入下:
{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
objC
產生的結果為 objA
,objB
兩個物件合併的結果,從上面例子中,我們可以知道藉由 jQuery.extend() 的方法 objB
的屬性會全部加入 objA
的內容裡,而如果有 相同屬性 的情況發生,則 objB
屬性內的內容取而代之
什麼情境下回去使用?
最常見的例子就是我們在開發 jQuery Plugin
時,對 Plugin 傳入參數時,會去使用到,直接看下面範例:
(function ( $ ) {
$.fn.greenify = function( options ) {
// This is the easiest way to have default options.
var settings = $.extend({
// These are the defaults.
color: "#556b2f",
backgroundColor: "white"
}, options );
// Greenify the collection based on the settings variable.
return this.css({
color: settings.color,
backgroundColor: settings.backgroundColor
});
};
}( jQuery ));
上面的例子來說,今天假設我只要更改 color
的內容,我的物件就只要傳遞 一個參數 , 其他屬性只繼續維持 default 的設定就可以了
範例來源 : basic-plugin-creation