我有一个我想要替换的对象。 - >
var obj1 = { x: 'a' };
var ref = obj1;
var obj2 = { y: 'b' };
obj1 = obj2;
结果
ref = { x: 'a' }
但我希望它也可以改为指向obj2来获取
ref = { y: 'b' }
答案 0 :(得分:2)
不可能。 JS通过引用的副本传递对象,因此在步骤var ref = obj1
中,您实际上并没有像使用C语言那样分配引用指针。相反,您创建的引用副本指向一个看起来像{x: 'a'}
的对象。
有关您拥有的其他选项,请参阅此答案:https://stackoverflow.com/a/17382443/6415214。
答案 1 :(得分:1)
您可以尝试使用obj2
字段更改obj1的所有字段var obj1 = { x: 'a' };
var ref = obj1;
var obj2 = { y: 'b' };
obj1.x = obj2.y;
console.log(ref) // Print {x, 'b'}
如果你想添加{y,'b'},你可以按照方法
obj1.y=obj2.y
console.log(obj1); prints {x: "b", y: "b"}
console.log(ref); prints {x: "b", y: "b"}
如果你想删除obj1.x,你可以做类似的事情
delete obj1.x;
console.log(ref) prints {y:'b'}