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

标签 javascript variables pointers global

我在 C 方面拥有丰富的经验,但对于 JavaScript 的使用还相当陌生。我一直在寻找解释,但似乎我没有正确地表达我的问题。我需要告诉函数它应该更改哪个全局变量。代码如下:

<!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。我该如何表述?

最佳答案

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

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'

关于javascript - JavaScript 中指向全局变量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805828/

相关文章:

javascript - 在维护委托(delegate)事件的同时复制存储的 jQuery 对象

java - java中如何检查文字是否为long类型?

c - 将指针传递给具有定义大小的 3D 数组

c++ - 返回节点指针的函数

javascript 变量,var x = a = {} 做什么?

c++ - 新手 C++;添加 char* 数组?

javascript - XMLHttpRequest() 在函数中返回响应

javascript - 过滤对象的数组属性而不改变对象本身

javascript - jQuery Mobile Beta 1 现在在移动浏览器中将页面显示为普通网站?

c - 如何声明不同大​​小的变量