在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.如何实现?谢谢。
如果他们是全局变量(如那些是),你可以简单地使用"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"]
),在后一种情况下,字符串可以是任何表达式的结果,包括变量查找。
或者人们可以使用OP的原始结构,并依赖于被鄙视的'eval'函数:'alert(Number(eval(window.bar)));' – 2014-08-27 14:22:46
@TedHopp:什么?对不起,没听说过。 ; -D – 2014-08-27 14:23:09
谢谢@TedHopp,回答我的问题。我赞赏其他答案,因为他们给我一些更好的编程方法的进一步说明。 – Frank 2014-08-27 14:31:30
删除window.foo的双引号。 window.bar = window.foo.Number(0)没有任何意义。你想做什么 – 2014-08-27 14:19:06