Задать вопрос

При создании переменной в js, можно ли создать ее из другой переменной?

При создании переменной в js, можно ли создать ее из другой переменной?

Пример функции

function(post_fix){

//В функцию приходит постфикс post_fix
//Например, post_fix = 1

//Создается новая переменная у которой должно быть имя с данным постфиксом
new_1 = '......';

//Где 1 - тот самый постфикс из переменной post_fix

}


В Smarty это выглядит так:
new_{$post_fix}
Но если значение в функции - не срабатывает..

Как можно создать переменную из параметра, который пришел в функцию?
  • Вопрос задан
  • 2180 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 4
@Bhudh
Я так понимаю, Вы имеете в виду «создать имя переменной, содержащее строку, переданную в функцию». Имя переменной (название ящичка) и сама переменная (собственно ящичек) — немного разные вещи.
Можно. Если использовать функции, выполняющие код на основе переданной строки. Это функции eval и функция-конструктор Function. Но 1) их использование не рекомендуется; 2) в случае функции Function можно создать либо внутреннюю переменную функции, либо глобальную переменную, что можно сделать и без неё через код
window[ 'new_' + post_fix ] = '......';
Ответ написан
Комментировать
Ну вообще это плохая практика так делать. Да и нормального способа для этого нет.

1) Писать в window
2) Писать в this

function foo(bar) {
  this["new_" + bar] = bar;

  return this;
}

console.log(new foo(10));
Ответ написан
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Лучше использовать объект, в него создавать свойство. А вообще, так
window['new_' + index] = '....'
Ответ написан
Комментировать
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега JavaScript
Руководитель frontend направления, предприниматель
Данная операция называется интерполяция. Давно в полный ход применяется в «продвинутых языках». А в JS присутствует стабильно с момента принятия стандарта ES6.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы