我们可以通过这样的名称来调用变量:
var name="a";
var a=4;
eval("alert("+name+")");//this will alert 4
但我听说不建议使用eval。有没有办法按名称调用变量而没有eval?
答案 0 :(得分:4)
你是对的,绝对不推荐eval
。一种常见的方法是使它们成为对象的属性,然后使用方括号表示法来访问它们:
var name = "a";
var myObj = {
a: 4
};
alert(myObj[name]);
答案 1 :(得分:1)
如果变量是全局变量,你可以window[name]
,但除此之外,你不能这样做。 “变量变量”是PHP的一部分。
如果要执行此操作,请更改程序,以便将变量存储在对象中。
var vars = {
a: 4
};
var name = "a";
alert(vars[name]);