是否可以不直接更改對象的值?JavaScript通過參考/鏈接/等更改對象值
例如
a = {x: 5}
b = a.x
b = 100
a.x // => 5
我希望得到100,但實際上,a.x
仍然是5
是否可以不直接更改對象的值?JavaScript通過參考/鏈接/等更改對象值
例如
a = {x: 5}
b = a.x
b = 100
a.x // => 5
我希望得到100,但實際上,a.x
仍然是5
只需使用數字作爲對象,而不是字面:
a = {x: {v: 5}}
b = a.x
b.v = 100
a.x.v // => 100
不喜歡你去了,沒有。你可以這樣做:
a = { x: 5 };
b = a;
b.x = 100;
a.x // => 100
這是不可能的在JavaScript中實現這一點。 5是一個數字類型,它是一個值類型。與函數,對象或數組不同,沒有辦法訪問它。
是的,你可以。所有對象的引用都是平等的,不管它是否是第一個。但是,a.x
不是一個對象,它是對象a
的屬性,所以用b = a.x
複製該屬性的值,該值恰好是b
的簡單數字。 b
未以任何方式鏈接到a
,並將b
分配給b
將不會對a
做任何事情。您需要指定b = a
,然後您可以修改由兩個變量引用的對象的屬性.x
爲a.x
或b.x
。
這不要緊,分配給'B'值。他所要求的是將'b'作爲用於'a.x'的同一個存儲的引用。 – lanzz