2012-05-30 175 views
4

我有以下的JavaScript對象:添加JavaScript對象到多個陣列

var foo = {"foofoo":value}; 
var bar = {"barbar":value2}; //and so on 

這些對象將被添加到多個數組:

var container = [foo, bar, baz, etc]; 
var container2 = [foo, bar, glob, etc]; //and so on, for lots of containers. 

如果我有很多對象(如foo)將這些數組放在一起,使用某種類型的散列碼錶並通過某種UID存儲對象會有好處嗎?或者JavaScript通過引用傳遞給我的功能已經?

http://www.timdown.co.uk/jshashtable/似乎提供了這樣的功能。

對不起,我對JavaScript的知識不夠全面。

編輯:我想另一種方式來更一般地重新提出這個問題 - 是否有任何情況下散列表對於通過引用傳遞對象的語言(如JavaScript)是有用的?

+0

爲什麼不把所有東西都放在一個對象而不是數組中? – elclanrs

回答

7

JavaScript對象總是以引用的形式傳遞;不可能無意中創建一個副本。

你沒有什麼好擔心的。

+0

謝謝!這意味着如果我有一個包含頂點數組的數學圖對象,我可以設置另一個「邊」對象(它也包含所述頂點)的數組,而不必擔心內存? – ejang

+0

無論你需要「擔心記憶」,只有你可以決定,這是給出信息的一個不合邏輯的結論。 A *非sequiteur *。 – RobG

0

你可以通過更改container[0].foofoo然後通過container2[0].foofoo來閱讀它,很容易就能對此進行測試。

它會告訴你值已經改變,這意味着JavaScript使用對象引用。