2013-07-06 55 views
0

假設我有一個變量Var123;像文本一樣訪問變量?

var x = "Var"; 

var VariableMixLOL = x + "123"; 
//so VariableMixLOL should be equal to Var123, ex. Var123 = "Abc", VariableMixLOL should be "Abc" too 

我該怎麼做?順便說一句我使用AS3

PS:新增的標籤JS太多,因爲我認爲這是同樣的事情

+0

我不認爲這個問題是很清楚的。什麼不工作?預期產出是多少? – elclanrs

+2

那麼,在JS你不能,你需要創建一個對象來做到這一點。像'var variable = {Var123:'hello'}; var x ='Var'; var VariableMixLOL = variable [x +'123'];' –

+0

這不是一回事。 – Stephen

回答

3

一種選擇是使用eval()

var x = "Var"; 
var Var123 = "lalaala"; 
var VariableMixLOL = eval(x + "123"); 

另一種選擇和更好的是模擬這樣的東西在JavascriptObject中。

var x = "variable"; 
var variables = { "variable123" : "laalala"}; //OR variables = {}; variables["variable123"] = "laalala"; 

var VariableMixLOL = variables[ x + "123"]; 
+0

任何這些選項適用於As3? –

+0

請自己試試(我沒有as3),如果您打算使用它,則應該再次正確地寫入第二個解決方案。 – sabithpocker

+0

btw,你爲什麼不在第二行寫變量=「lalalal」?這不是一回事嗎? –

1

如果您合併存儲的對象,則可以使用變量名稱作爲字符串。

例如:

var x = "Var"; 
var compoundVar = x + "123"; 
var obj : Object = {}; 
obj[compoundVar] = 7; 

//Now you can call the variable like this 
trace(obj.Var123); //7 
+1

但我也很喜歡'sabithpocker'的答案很多! –

+0

有沒有什麼辦法可以直接做var,而不必使用obj? –

+0

@IgliKadija:查看其他答案 –