2013-07-06 3 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 = переменная [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

Кстати, почему бы вам не написать переменные = "lalalal" во 2-й строке? Разве это не одно и то же? –

1

Имя переменной как String может использоваться, если вы включаете объект, в который вы его храните.

Например:

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: см. Другой ответ –

Смежные вопросы