2

既存のJavaScriptオブジェクトに基づいて新しいJavaScriptオブジェクトを作成したいと思います。
今まで私の研究は私をjQuery拡張関数に導きました。

例:

var object1 = {
    name:'same name',
    age:'1',
    occupation:'programmer'
}
var object2 = {
    name:'same new name'
}

今、私が電話すると:

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

それは完全に機能します、私の問題は私がオブジェクト内にオブジェクトメンバーを持っているときです!

var object1 = {
    name:'same name',
    age:19,
    occupation:'programmer',
    parent:{
        name:'parent name',
        age:35
    }
}
var object2 = {
    name:'same new name',
    parent:{
        age:40
    }
}

今、私が電話するとき

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

object1.parentは次のとおりです。

{
    age:40
}

私はそれをしたい:

{
    name:'same new name',
    age:40
}

これを達成する方法はありますか?

4

3 に答える 3

5

jQuer.extend()メソッドにdeepパラメーターを使用すると、コードは次のようになります。

$.extend(true,{},object1,object2)
于 2012-05-21T14:49:58.080 に答える
1

あなたがしなければならないことは、深い拡張を実行することです

$.extend(true, {},object1,object2);
于 2012-05-21T14:51:01.510 に答える
1

次のように、強制的$.extendにディープコピーを実行できます。

$.extend(true, {},object1,object2);

ただし、$.extendプロパティをコピーするだけなので、継承階層は作成されません。

于 2012-05-21T14:53:01.693 に答える