私は置きたいオブジェクトを持っています。 - >jsオブジェクトの置換/参照の変更
ref = { x: 'a' }
で
var obj1 = { x: 'a' };
var ref = obj1;
var obj2 = { y: 'b' };
obj1 = obj2;
結果が、私はそれが
ref = { y: 'b' }
私は置きたいオブジェクトを持っています。 - >jsオブジェクトの置換/参照の変更
ref = { x: 'a' }
で
var obj1 = { x: 'a' };
var ref = obj1;
var obj2 = { y: 'b' };
obj1 = obj2;
結果が、私はそれが
ref = { y: 'b' }
ない可能得るためにOBJ2を指すようにも変更を取得します。 JSはオブジェクトを参照のコピーで渡します。したがって、var ref = obj1
のステップでは、Cのような参照ポインタを実際には割り当てません。代わりに、参照するオブジェクトを指す参照のコピーを作成しています{x: 'a'}
のように。
その他のオプションについては、この回答を参照してください:https://stackoverflow.com/a/17382443/6415214。
var obj1 = { x: 'a' };
var ref = obj1;
var obj2 = { y: 'b' };
obj1.x = obj2.y;
console.log(ref) // Print {x, 'b'}
の分野でOBJ1のすべてのフィールドを変更しようとすることができます
obj1.y=obj2.y
console.log(obj1); prints {x: "b", y: "b"}
console.log(ref); prints {x: "b", y: "b"}
あなたはこの
delete obj1.x;
console.log(ref) prints {y:'b'}
ような何かを行うことができますobj1.xあなたが代わりに削除したい場合はそれはあなたが –
I bを望むものを、非常に明確ではありませんオブジェクトへの参照を非同期的に置換したい。 obj1 = obj2を実行すると、obj1への参照がobj2への参照に置換されます。 – Chris
これはJavaScriptの動作ではありません:) – ValLeNain