向多个数组添加JavaScript对象

4
我有以下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这样按引用传递对象的语言,哈希表是有用的?

为什么不把所有东西都放在一个对象中,而不是数组中? - elclanrs
2个回答

7

Javascript对象总是通过引用传递;不可能无意中创建一个副本。

你不用担心任何问题。


谢谢!这意味着如果我有一个包含顶点数组的数学图形对象,我可以设置另一个包含“边缘”对象的数组(也包含这些顶点),而不必担心内存问题? - ejang
你是否需要“担心内存”只有你自己能决定,鉴于所提供的信息,这是一个不合逻辑的结论。这是一个非因果关系推断 - RobG

0

您可以通过更改container[0].foofoo并通过container2[0].foofoo读取它来轻松测试此功能。

这将向您显示值已更改,这意味着JavaScript使用对象引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接