Javascript 将JS变量名传递给函数
下面是我想做的:Javascript 将JS变量名传递给函数,javascript,json,variables,Javascript,Json,Variables,下面是我想做的: 已设置名为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}" } }; 在下拉列表中,
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}"
}
};
data\u 1
的选项,该选项调用load('data\u 1')
data_1
,而不是变量本身。
因此,在我的函数load('data\u 1')
中,当我alert(data)
时,我得到data='data\u 1'
function load(data)
{
tmp = findSWF("my_chart");
x = tmp.load( JSON.stringify(data) );
}
那么,如何通过只传递字符串的名称来获取load函数中变量
data_1
的内容呢?或者您可以使用
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]) );
}
alert(eval(data))
如果它是一个全局变量,您可以使用
window['the_variable_name']
例如
哇!使用eval()时必须非常小心!正如第二个答案中所说的那样:eval并不总是邪恶的。有时它是非常合适的。@马特·鲍尔不同意给这个答案打-1,因为他建议使用Eval。Eval可以随身使用,但也可以用于调试。谢谢!这工作做得很好!我还得试试上面的窗户。
function load(data)
{
tmp = findSWF( "my_chart" );
x = tmp.load( JSON.stringify( window[data] ) );
}