指向JavaScript中的全局变量的指针

时间:2014-05-22 11:41:35

标签: javascript variables pointers global

我对C有丰富的经验,但我使用JavaScript相当新。我一直在寻找解释,但似乎我没有正确地表达我的问题。我需要告诉一个函数应该改变哪个GLOBAL变量。这是代码:

<!DOCTYPE html>
<html>
 <head>
  <script>
   function test(blah)
   {
    if (!window.blah)
     window.blah = 0;
    window.blah++;
    document.getElementById(blah).innerHTML = window.blah;
   }
  </script>
 </head>
 <body>
  <div id="first">0</div>
  <input type="button" onclick="test('first')" value="change">
  <br>
  <div id="second">0</div>
  <input type="button" onclick="test('second')" value="change">
  <br>
 </body>
</html> 

代码的目的是有两个单独的计数器 - 单击第一个按钮应增加window.first,而单击第二个按钮应增加window.second。我怎么说这个?

1 个答案:

答案 0 :(得分:2)

您需要使用方括号表示法指定变量名称:

function test(blah)
{
    if (!window[blah])
        window[blah] = 0;
    window[blah]++;
    document.getElementById(blah).innerHTML = window[blah];
}

希望这能说明点符号与方括号表示法相比如何工作;

var o = {
    key: 'value',
    foo: 'bar'
};

var key = 'foo';

console.log(o['foo']); // 'bar'
console.log(o[key]);   // 'bar'
console.log(o.key);    // 'value'