2014-08-27 84 views
0

我需要從第二個變量中分配一個變量名,然後在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

回答

1

如果他們是全局變量(如那些是),你可以簡單地使用"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

相關問題