[jQuery]函式說明: jQuery.extend()

[jQuery]函式說明: jQuery.extend()

jQuery.extend(),是 jQuery 用於合併兩個或多個 JavaScript Object 所提供的方法,如果你有用過 git,那就能更容易的理解他的用途,可以直接把他當作 git 在 merge 的時候來理解他的功能,沒使用過的也沒關係,文章會呈現一些範例可以理解一下 jQuery.extend() 產生的結果


這裡以 objAobjB 兩個為例:

//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 產生的結果為 objAobjB 兩個物件合併的結果,從上面例子中,我們可以知道藉由 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

Facebook 功能: