我曾经单独存储变量,例如,如果我有一个旧元素,我会将它保存在一个名为“ele_old”的变量中,然后如果我有一个新元素,我会将它保存在一个名为“ele_new”的变量中”。但是,我刚刚想到我可以将2个变量保存在1个数组变量中,所以我可以这样做:
eles_arr['old'] = //old element;
eles_arr['new'] = //new element;
这种方式允许我将相同类型的变量放入同一个数组中,以便更好地组织,例如元素组合在一个数组中,然后在另一个数组中组合在一起。
问题是我对javascript(以及任何其他编程语言,对于那个问题)都是新手,所以我想知道这是否是一种低级方式,而不仅仅是将每个变量分开。这样做会导致任何问题吗?例如,运行时性能差?
谢谢!
答案 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
命名空间并使用所有元素引用填充它是有意义的。