2014-10-20 2 views
0

Это более синтаксический вопрос, но я не мог правильно его правильно перевести.Имя переменной Javascript основывается на других переменных

Скажем, у меня есть 2 переменные:

classHours = 127; 
currentNumber = 3; 

Как бы имя переменной, основанной от этих чисел?

Так что давайте говорить, что я хотел переменную с именем

classHours + "pop_up" + currentNumber 

Как бы я идти об этом?

+4

Есть способы сделать это, но они не являются общими общепринятой практикой в ​​JavaScript. Какую проблему вы пытаетесь решить, выполнив это? Существуют и другие идиоматические способы создания и доступа к спискам и картам ценностей. – Pointy

+3

Обычно, когда вы думаете, что вам нужно сделать что-то подобное, вместо этого вы должны использовать массивы или объекты. – JJJ

+0

Да, @Pointy и Juhana правы. Попробуйте найти «динамическое имя переменной» или «имя переменной переменной в javascript». http://stackoverflow.com/questions/5117127/use-dynamic-variable-names-in-javascript – vaso123

ответ

2

Во-первых, ваша переменная не может начинаться с числовой цифры, только буквы и некоторые специальные символы. Я считаю, что вы хотите сделать глобальную переменную, и вы можете сделать это с помощью объекта window. Я бы рекомендовал создать свою собственную переменную объекта и использовать ее вместо этого. Так вы бы это сделали:

var infoObject = { 
    classHours: 127, 
    currentNumber: 3 
} 
infoObject['pop_up'+infoObject.classHours+'_'+infoObject.currentNumber] = 'variable contents here'; 

Однако, как правило, не должно быть причин создавать переменные таким образом. Что именно вы пытаетесь достичь?

+0

Чистое любопытство. –

0

Вы можете использовать массив с динамическими переменными, как это:

var dynamicVariables = []; 

classHours = 127; 
currentNumber = 3; 

dynamicVariables[classHours + "pop_up" + currentNumber] = "Hey!"; 

alert(dynamicVariables["127pop_up3"]); // => Hey! 
Смежные вопросы