2

我们可以通过它们的名称来调用变量,如下所示:

var name="a";
var a=4;
eval("alert("+name+")");//this will alert 4

但我听说不推荐使用 eval 。有没有办法在没有 eval 的情况下按名称调用变量?

4

2 回答 2

4

你是对的,eval绝对不推荐。一种常见的方法是使它们成为对象的属性,然后使用方括号表示法来访问它们:

var name = "a";
var myObj = {
    a: 4
};
alert(myObj[name]);

这是一个工作示例

于 2012-04-30T15:01:04.420 回答
1

如果变量是全局的,你可以这样做window[name],否则,你不能那样做。“变量”是 PHP 的东西。

如果您想这样做,请更改您的程序,以便您的变量存储在一个对象中。

var vars = {
    a: 4
};
var name = "a";

alert(vars[name]);
于 2012-04-30T15:00:52.820 回答