在JavaScript中获取从第二个变量中命名的变量的值

问题描述:

我需要从第二个变量中分配一个变量名,然后在JavaScript中提醒第一个变量的值。在JavaScript中获取从第二个变量中命名的变量的值

下面是我试图实现的一个例子。

window.foo=0; 
window.bar="window.foo"; 

//want to set an alert for window.bar in a way that returns 0 
alert(window.bar); //returns window.foo 
alert(Number(window.bar)); //returns window.NaN 

在上面的示例中,我期待提醒值0.如何实现?谢谢。

+2

删除window.foo的双引号。 window.bar = window.foo.Number(0)没有任何意义。你想做什么 – 2014-08-27 14:19:06

如果他们是全局变量(如那些是),你可以简单地使用"foo"看时它挂在window,而不是"window.foo"

var name = "foo"; 
window.foo = 0; 
alert(Number(window[name])); // 0; 

但是全局变量是一件坏事(TM)

要做到这一点没有全局,用你自己的对象:

var name = "foo"; 
var obj = {}; 
obj.foo = 0; 
alert(Number(obj[name])); // 0; 

两个以上工作的,因为在JavaScript中,你可以参考一个对象的属性或者与点符号和文字(obj.foo),或带括号的符号和一个字符串(obj["foo"]),在后一种情况下,字符串可以是任何表达式的结果,包括变量查找。

+0

或者人们可以使用OP的原始结构,并依赖于被鄙视的'eval'函数:'alert(Number(eval(window.bar)));' – 2014-08-27 14:22:46

+1

@TedHopp:什么?对不起,没听说过。 ; -D – 2014-08-27 14:23:09

+0

谢谢@TedHopp,回答我的问题。我赞赏其他答案,因为他们给我一些更好的编程方法的进一步说明。 – Frank 2014-08-27 14:31:30