2009-05-28 68 views
3

我如何可以連接變種名稱的JavaScript?:申報新瓦爾如何連接JavaScript中的var名稱?

var foo = 'var'; 
var bar = 'Name'; 

我如何聲明變量varName中?

+3

只是出於好奇,爲什麼你需要做的是什麼?有機會,你做錯了什麼。 – 2009-05-28 03:06:49

+0

它使Javascript更難閱讀,因爲你不能通過使用這樣的簡單搜索來搜索聲明變量的位置(「var [variable name]」)。 – 2009-05-28 03:35:00

+1

我已經預先聲明瞭用戶可能基於用戶文本輸入調用的var名稱。 – Babiker 2009-05-28 03:40:48

回答

12

試着這麼做:

window[foo + bar] = "whatever"; 
alert(varName); 

,除非你是絕對肯定這是怎麼回事在不使用eval函數窗口[]更安全,如果你所做的只是變量訪問

1

警告:VaporCode!關閉我的頭頂...

window[foo + bar] = "contents of variable varName"; 

這是否行得通?

+0

我該如何解決這個問題? – Babiker 2009-05-28 04:00:54

-3

有可能是一個更好的辦法,但EVAL應該這樣做

eval('var ' + foo + bar); 
1

動態聲明本地變量(即var fooName),我想你可以使用eval

eval('var ' + foo + bar); 

最好避免eval不過,如果你能避免它(見related question)。

更好的方法是設置對象屬性。定義一個全局變量相當於全局對象window上設置屬性:

window[foo+bar] = 'someVal'; 

您可以在適當另一個對象替代window

0

本地:

this[foo+bar] = true; 

全球:

window[foo+bar] = true;