将JS变量名传递给函数

时间:2009-09-02 18:20:42

标签: javascript json variables

所以这就是我想要做的事情:

  1. 我的名为data_1的变量已设置。

    var data_1 = {
      "y_legend": {
        "text": "# of Patients",
        "style": "{font-size: 20px; color: #778877}"
      },
      "x_legend": {
        "text": "AUG 09 - OCT 09",
        "style": "{font-size: 20px; color: #778877}"
      }
    };
    
  2. 在下拉列表中,用户会选择一个名为data_1的选项,该选项会调用load('data_1')

    function load(data)
    {
      tmp = findSWF("my_chart");
      x = tmp.load( JSON.stringify(data) );
    }
    
  3. 我的问题:我选择的值为data_1而不是变量本身。 因此,在我的函数load('data_1')中,当我alert(data)时,我得到data = 'data_1'

    那么如何通过只传递字符串的名称来获取我的加载函数中变量data_1的内容?

3 个答案:

答案 0 :(得分:4)

var data_1 = { /* data goes here */ };

var data_choices = {1: data_1, 2: data_2, /* and so on */};

var load = function (data) {
    // data is "1", "2", etc. If you want to use the full data_1 name, change
    // the data_choices object keys.

    var tmp = findSWF("my_chart");
    var x = tmp.load( JSON.stringify(data_choices[data]) );
}

答案 1 :(得分:3)

如果它是全局变量,您可以使用

引用它
window['the_variable_name']

E.g。

function load(data)
{ 
  tmp = findSWF( "my_chart" ); 
  x = tmp.load( JSON.stringify( window[data] ) ); 
}

答案 2 :(得分:2)

或者你可以简单地使用

alert(eval(data))