对象引用的变量重新分配使其他对象保持不变(没有“传递”分配)

Chr*_*ris 5 javascript variables reference pass-by-reference

我有一个要替换的对象。

var obj1 = { x: "a" };
var ref = obj1;
var obj2 = { y: "b" };

obj1 = obj2;
Run Code Online (Sandbox Code Playgroud)

这导致了ref等价于{ x: "a" },但我想让它变得更改,以点obj2获得ref等同于{ y: "b" }

Cha*_*les 3

不可能。JS 通过引用的副本传递对象,因此在这一步中,var ref = obj1您实际上并没有像在 C 等语言中那样分配引用指针。相反,您正在创建一个引用的副本,该副本指向一个看起来像这样的对象{x: 'a'}

有关您拥有的其他选项,请参阅此答案:/sf/answers/1216771041/