2016-04-27 9 views
2

置き換えるdocumentationjQueryの範囲JSONの配列パラメータは、私はAPIごとのように、この方法を拡張jqueryの理解しようとしています

$ .extend()によって実行されるマージは、デフォルトでは再帰的ではありません

。最初のオブジェクトの プロパティ自体がオブジェクトまたは配列である場合は、 は、2番目の 以降のオブジェクトで同じキーを持つプロパティによって完全に上書きされます。値はマージされません。

これは、配列またはオブジェクトのプロパティがマージされず、置き換えられることを示しています。下記の例では、JSON配列があり、置き換えられる代わりにマージされています。

var a = { 
    external : true, 
    parameter : [{name:'ip1'},{name:'ip2'},{name:'ip3'}] 

}; 
var b = { 
    data:'Sumeet', 
    parameter : [{name:'ip1'},{name:'ip2'}] 
}; 


$.extend(true,a,b); 

console.log(a); 

Output : 


{ 
    data: "Sumeet", 
    external: true, 
    parameter: [{ 
    name: "ip1" 
    }, { 
    name: "ip2" 
    }, { 
    name: "ip3" 
}] 
} 

パラメータは、あなたの引用が "デフォルトでは" と言うことだけIP1とIP2

+0

http://james.padolsey.com/jquery/#v=1.11.2&fn=jQuery.extend – Rayon

+1

もう2つの文を読んだだけの場合:P –

答えて

3

注意が必要です。ドキュメントは、後にも書かれています:

しかし、オブジェクトを再帰的にマージされる最初の関数の引数のためのtrueを渡すことで。

全段落:

$.extend()によって実行されるマージは、デフォルトでは再帰的ではありません。最初のオブジェクトのプロパティ自体がオブジェクトまたは配列である場合、2番目以降のオブジェクトで同じキーを持つプロパティによって完全に上書きされます。値はマージされません。これは、以下の例では、バナナの価値を調べることで確認できます。ただし、最初の関数の引数にtrueを渡すと、オブジェクトは再帰的にマージされます。

関連する問題