我有以下变量:
var MyVar = "8";
例如,我有 2 个字符串:
var foo = "My";
var bar = "Var";
现在我想提醒 MyVar 值,意思是提醒“8”而不是“MyVar”
alert(foo + bar) // returns "MyVar"
我有以下变量:
var MyVar = "8";
例如,我有 2 个字符串:
var foo = "My";
var bar = "Var";
现在我想提醒 MyVar 值,意思是提醒“8”而不是“MyVar”
alert(foo + bar) // returns "MyVar"
这是需要的罕见情况eval
:
代码
var MyVar = "8",
foo = "My",
bar = "Var";
alert(eval(foo + bar))
链接:http: //jsfiddle.net/howderek/wcVNU/
假设它是一个全局变量:
alert(window[foo + bar])
但是你可能最好使用对象和属性。对象属性也可以用括号表示法访问:
var obj = {
MyProp : 8
};
var foo = "My";
var bar = "Prop";
alert(obj[foo + bar]);
无需将上下文更改为您正在执行的大部分操作,您就可以使用该eval
功能。但是,您必须非常小心。
var MyVar = 8;
var foo = "My";
var bar = "Var";
alert(eval(foo + bar));
虽然有很多方法可以做到这一点,但这取决于你在做什么。如果您指定MyVar
为某些上下文的一部分,例如this
, 或者window
您可以简单地使用键作为变量名来查找值。
窗口上下文
(function () {
window.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(window[foo+bar]);
})();
函数上下文
new (function () {
this.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(this[foo+bar]);
})();
对象上下文
(function () {
var obj = {}
obj.MyVar = 8;
var foo = "My";
var bar = "Var";
alert(obj[foo+bar]);
})();