【问题标题】:javascript: array of variables or separate variables?javascript:变量数组还是单独的变量?
【发布时间】:2010-11-24 12:59:44
【问题描述】:

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

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

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

问题是我对 javascript(以及任何其他编程语言,就此而言)还是很陌生,所以我想知道这是否比仅将每个变量分开是一种劣质的方法。这样做会导致任何问题吗?例如,运行时性能不佳?

谢谢!

【问题讨论】:

  • 这两个 JavaScript 语句之间的 HTML 标记是什么?
  • @Sime:我认为 BigName 不知道如何格式化代码块。我已经为他编辑了。
  • 是的,很抱歉。顺便说一句,插入换行符的正确方法是什么?

标签: javascript


【解决方案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' 设置一个包含两个值的数组绝不会影响您的性能,但为了便于阅读,我仍然不建议使用数组。

更新

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

【讨论】:

  • new 是保留字。它不能用作属性名称。
  • @Sime:是的,我要提到这一点,但我保持属性名称相同,以便他可以轻松比较他所拥有的和我建议的之间的区别。我会更新的。
【解决方案2】:

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

var eles = {};

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2017-02-15
    • 2018-07-15
    • 2013-05-24
    相关资源
    最近更新 更多