2012-05-30 131 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使用对象引用。