2012-06-14 64 views

回答

1

只需使用數字作爲對象,而不是字面:

a = {x: {v: 5}} 

b = a.x 
b.v = 100 

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

不喜歡你去了,沒有。你可以這樣做:

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

這是不可能的在JavaScript中實現這一點。 5是一個數字類型,它是一個值類型。與函數,對象或數組不同,沒有辦法訪問它。

+0

這不要緊,分配給'B'值。他所要求的是將'b'作爲用於'a.x'的同一個存儲的引用。 – lanzz

1

是的,你可以。所有對象的引用都是平等的,不管它是否是第一個。但是,a.x不是一個對象,它是對象a的屬性,所以用b = a.x複製該屬性的值,該值恰好是b的簡單數字。 b未以任何方式鏈接到a,並將b分配給b將不會對a做任何事情。您需要指定b = a,然後您可以修改由兩個變量引用的對象的屬性.xa.xb.x

+0

不,他想不到,你正在考慮改變對象的屬性,他希望通過引用來分配。你不能改變一個變量分配給什麼(除非你有這個變量本身當然)在JavaScript,對象或不。 – Esailija

+0

我沒有在這裏看到「我希望通過引用分配」,所以我回答了他可以做的事情。 –

+0

他的例子很清楚。僅僅用一種實際上支持它的語言來添加'b =&a.x'就可以完成所有工作。 – Esailija