JavaScript 通过引用/链接/等更改对象值

JavaScript change object value through reference/link/etc

本文关键字:对象 链接 引用 JavaScript      更新时间:2023-09-26

是否可以不直接更改对象的值?

例如

a = {x: 5}
b = a.x
b = 100
a.x // => 5

我想得到 100,但实际上,a.x仍然是 5。

不像你要去,不。不过,您可以这样做:

a = { x: 5 };
b = a;
b.x = 100;
a.x // => 100

只需将数字用作对象,而不是文字:

a = {x: {v: 5}}
b = a.x
b.v = 100
a.x​​.v // => 100

是的,你可以。对对象的所有引用都是相等的,无论它是否是第一个。但是,a.x不是对象,它是对象a的属性,因此b = a.x复制该属性的值,这恰好是一个简单的数字来bba没有任何联系,将其他内容分配给ba没有任何帮助。您需要赋b = a,然后您可以将两个变量引用的对象的属性.x修改为 a.xb.x

在 JavaScript 中不可能实现这一点。 5 是数字类型,它是值类型。与函数、对象或数组不同,无法通过引用访问它。