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

时间:2012-06-14 10:01:17

标签: javascript

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

例如

a = {x: 5}

b = a.x
b = 100

a.x // => 5

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

4 个答案:

答案 0 :(得分:5)

不喜欢你要去,不。你可以这样做:

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

答案 1 :(得分:1)

是的,你可以。对象的所有引用都是相同的,无论它是否为第一个。但是,a.x不是对象,它是对象a的属性,因此使用b = a.x复制该属性的值,恰好是{{1}的简单数字}。 b没有以任何方式与b相关联,并为a分配其他内容将对b无效。您需要分配a,然后您可以将这两个变量引用的对象的属性b = a修改为.xa.x

答案 2 :(得分:1)

只使用数字作为对象,而不是文字:

a = {x: {v: 5}}

b = a.x
b.v = 100

a.x​​.v // => 100

答案 3 :(得分:0)

在JavaScript中实现这一点是不可能的。 5是Number类型,它是值类型。与Function,Object或Array不同,无法通过引用访问它。