ここでは、私がやろうとしているものの単純すぎるバージョンです。その後jquery deep replace
var usersChoice;
var object1 = {name: 'fu', id:'123', infoArray: [1,2,3,4,5]};
var object2 = {name: 'bar', id:'456', infoArray: [9,8]};
jQuery.extend(true, usersChoice, object1);
私は
jQuery.extend(true, usersChoice, object2);
に結果を私の心を変更したい場合は:私が欲しいもの
usersChoice = {name: 'bar', id:'456', infoArray: [9,8,***3,4,5***]};
は全く新しいと交換される古いオブジェクトです。私のような拡張直前に呼び出すことができますだけでも、深い消去機能...私は試してみました、レコードだけuserChoice =新しいオブジェクトまたはコピーしていないが、ただ、元のオブジェクトを指し示すために
userChoice.nukeItFromOrbit();
。両方のソリューションは、ラインに沿ったある時点で範囲外になるという厄介な傾向があります。 (これらのオブジェクトのいくつかは「this」として渡されていますが、原因は疑いがあります)
ディープコピーホイールを再作成せずにどうすればよいですか?私が見つけたすべてのことを見てきたのは、ホイールを再発明している、または私がやっていることをやらなければならない理由がないと言われていることです。 =/
空のオブジェクトを拡張していませんか?またはobject2が欠落していた場合は、最終結果で名前が失われますか? (私には、これを行う必要がないことのキャンプにいるので、また、これのためのユースケースを与えてください) –
質問は不明です、あなたはdeepExtendを望んでいるか、深く伸びたがりませんか? – Abid
@Abid私はすべてのデータと新しい入れ墨のヌークェンドされる古いオブジェクトを深く置き換えたい。 –