javascript:变量数组还是单独的变量?

时间:2010-11-24 12:59:45

标签: javascript

我曾经单独存储变量,例如,如果我有一个旧元素,我会将它保存在一个名为“ele_old”的变量中,然后如果我有一个新元素,我会将它保存在一个名为“ele_new”的变量中”。但是,我刚刚想到我可以将2个变量保存在1个数组变量中,所以我可以这样做:

eles_arr['old'] = //old element;
eles_arr['new'] = //new element;

这种方式允许我将相同类型的变量放入同一个数组中,以便更好地组织,例如元素组合在一个数组中,然后在另一个数组中组合在一起。

问题是我对javascript(以及任何其他编程语言,对于那个问题)都是新手,所以我想知道这是否是一种低级方式,而不仅仅是将每个变量分开。这样做会导致任何问题吗?例如,运行时性能差?

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在做的是在eles_arr对象上设置属性。它类似于说:

eles_arr.oldEl = //old element
eles_arr.newEl = //new element

它不是将它们存储在数组中,因此它类似于将变量分开 - 它们只是在eles_arr对象中分组。要将它们放在一个阵列中,你可以这样做:

eles_arr.push(oldEl);
eles_arr.push(newEl);

话虽如此,我不会将这两个变量放在一个数组中。我会将它们分开以增加可读性。将值保存在同一个数组中可能是有意义的,您可能还记得它们的位置。但是其他开发人员可能不会,这可能导致将来出现问题。

最后,为'old'和'new'提供两个值的数组将不会影响你的情况下的性能,但为了便于阅读,我仍然不建议使用数组。

<强>更新

我将变量从'旧''新'更改为'oldEl''newEl'反映Šime对保留关键字'new'的评论。

答案 1 :(得分:0)

您可以使用对象来创建命名空间/模块,从而减少全局/局部变量的数量:

var eles = {};

eles.foo = document.getElementById("foo");
eles.bar = document.getElementById("bar");  

但是,只有当你有20个或更多元素并且在各种事件处理程序/函数中需要它们时,这才有意义。在这种情况下,创建eles命名空间并使用所有元素引用填充它是有意义的。