Как я могу использовать значение переменной для обозначения переменной?
Если вы поместите их в объект, вы можете сделать это вместо:
Имя переменной не может быть результатом выражения, если вы не используете eval , который вы не хотите делать, или если это глобальная переменная.
Если вам требуется динамическое именование, вы должны использовать объект и динамически назвать его свойства. Это также то, как глобально можно создавать динамически.
eval делает следующее:
Я уверен, что многие говорят «НЕТ» для оценки. Но это делает.
Без использования eval или с, что-то вроде этого невозможно, и эти методы не рекомендуются по разным причинам.
Однако вы можете использовать переменную как ключ для свойства объекта:
Пока настройки свойств глобального объекта (окна в браузерах) будут делать то, что вы просите, я настоятельно рекомендую не писать код бизнес-логики непосредственно в глобальном масштабе, особенно с именами динамических переменных. Потенциал случайных ошибок столкновения имен слишком суровый.
Как в JavaScript из значения одной переменной создать другую переменную.
Аналог в PHP:
Или такой возможности язык не предоставляет?
Я два способа знаю, и все не очень хороши.
Лучше используйте просто массивы и всё.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Стоит задача создавать 1200 кнопок.
Вот мой код
Только в последних версиях Javascript window не используется, как я понял.
В старых версиях можно было делать так
А как в современном javascript динамически задать имя переменной в цикле?
Буду признателен за помощь.
- Вопрос задан более года назад
- 1503 просмотра
Только в последних версиях Javascript window не используется, как я понял.
Чего. Глобальный объект есть всегда! Он может быть не window, а global.
Хороший код должен выглядеть примерно так:
В современном JS для таких задач принято использовать массивы:
«Только в последних версиях Javascript window не используется, как я понял.» — не очень понял, о чем речь. Хотите — используйте, только это на самом деле не очень удобно.
Динамически создать переменные нельзя. Можно работать с полями объекта, что ты как раз и делал с объектом window (ты не создавал переменные, f писал поля в объект window, что является плохой практикой, т.к. фактически ты пишешь в global scope).
Создай объект и работай с его полями, например так.
Кстати, советую посмотреть для общего развития в сторону dynamic fields — нововведение из ES6.
Можно писать вот так:
Источник: