Javascript 可以引用一个变量吗

Javascript 可以引用一个变量吗,javascript,Javascript,我有一个对象,它有大约30个“值”或其他名称,例如: var list = new Object(); list.one = 0; list.two = 0; list.three = 0; ... list.thirty = 0; test(list, "one", 1, "add"); 是否有一种简单/有效的方法可以增加列表对象的值 例如,假设有100个按钮,如果按下每个按钮,值将增加一定量。我想做的是一个简短的函数,比如: function test( value, amount, m

我有一个对象,它有大约30个“值”或其他名称,例如:

var list = new Object();
list.one = 0;
list.two = 0;
list.three = 0;
...
list.thirty = 0;
test(list, "one", 1, "add");
是否有一种简单/有效的方法可以增加列表对象的值

例如,假设有100个按钮,如果按下每个按钮,值将增加一定量。我想做的是一个简短的函数,比如:

function test( value, amount, math ) {
   if( math === "add" ) {
   value += amount;
   } else if( math === "sub" ) {
   value -= amount;
   }
}
但是整个值的事情不起作用=(。我唯一能想到的另一种方法是创建30个函数,每个函数都要做与上面相同的事情,但每个函数都指定要添加或减去的列表值。或者使用if value==“one”创建一个函数然后list.one等。还有其他想法吗?我曾考虑过使用数组,但我更喜欢让代码易于阅读,因为列表值有特定的名称,这使我在其他函数中更容易阅读


提前感谢您的帮助

尝试以下方法:

function inc(value,amount) {
  list[value] += amount;
}

您可以通过名称作为字符串访问属性:

function test(obj, name, amount, math) {
  switch (math) {
    case "add":
      obj[name] += amount;
      break;
    case "sub":
      obj[name] -= amount;
      break;
  }
}
例如,使用以下命令调用它:

var list = new Object();
list.one = 0;
list.two = 0;
list.three = 0;
...
list.thirty = 0;
test(list, "one", 1, "add");
可以引用变量吗

不可以。但是可以引用一个对象并使用。这实际上是您已经拥有的,所以您可以将您的函数更改为

function test( value, amount, math ) {
    if( math === "add" ) {
        list[value] += amount;
    } else if( math === "sub" ) {
        list[value] -= amount;
    }
}
test(“one”,100,“add”)
代替
test(list.one,100,“add”)
。顺便说一句,我建议用负值代替
add/sub
动词

list[value] += amount;
其中value是一个字符串,如“1”、“2”等

您还可以传入要递增的对象:

function(obj, value, amount, math) {
  obj[value] += math;
}

但是你可能应该使用数组+循环/重构。

var list=new Object();
所以它不是一个列表……不管怎样,你知道javascript中的数组吗?我认为使用数组是最好的解决方案。永远不要做计算机的工作(从list.1手动写入list.30)您的函数无法工作,因为值被解析为值。虽然不完全正确,Javascript或多或少通过引用传递数组和对象,但通过值传递数字和字符串。谢谢,这正是我想要的谢谢你,这正是我想要的谢谢你,这正是我想要的汉克斯如此完美地详细描述它,这正是我想要的。很好的point也有负值,我失败了。谢谢。