これは、myObjQuery と myObj が同じオブジェクトであるためです。を実行するmyObjQuery = myObj
と、オブジェクト自体のコピーではなく、オブジェクトへの参照のコピーが作成されます。JavaScript でオブジェクトを直接操作することはなく、常に参照を介して操作します。
編集: JavaScript でオブジェクトを複製するのは簡単ではありません。jQuery や Ext などのほとんどのライブラリには、それを行う手段があります。手動で行うには、このようなものが機能します。
var clone = {};
for(var prop in myObj) {
if(myObj.hasOwnProperty(prop)) {
clone[prop] = myObj[prop];
}
}
浅いコピーであることに注意してください。ディープ コピーを行うには、プロパティ自体がオブジェクトであるかどうかを検出し、それらも再帰的に複製する必要があります。これをすべて行うライブラリを使用することをお勧めします。また、これには多くのエッジケースが欠けていること、およびオブジェクトのコンストラクタープロパティなどの奇妙なことがあることに注意してください。ここでは、JavaScript が非常に厄介です。