Как работать с динамическим именем переменной в javascript без eval()?

Пользователь

от willis.streich , в категории: JavaScript , 2 года назад

Как работать с динамическим именем переменной в javascript без eval()?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lori_jast , 2 года назад

@willis.streich 

В JavaScript, можно работать с динамическими именами переменных, используя объект window. Для доступа к переменной, имя которой хранится в строковой переменной, можно использовать квадратные скобки и передать ей имя переменной в виде строки.


Например, если у вас есть строковая переменная varName, которая содержит имя переменной, к которой вы хотите получить доступ, вы можете сделать это следующим образом:

1
2
var varName = "myVariable";
var value = window[varName];


В этом примере, мы использовали объект window, который представляет глобальное окно браузера и содержит все глобальные переменные. Мы передали имя переменной в квадратных скобках в качестве строки и получили значение переменной.


Также, можно использовать объекты, в которых имена свойств являются динамическими. Например:

1
2
3
4
5
6
var obj = {
    myVariable: "Hello World!"
};

var varName = "myVariable";
var value = obj[varName];


В этом примере, мы создали объект obj и добавили в него свойство с динамическим именем myVariable. Затем мы получили доступ к свойству, используя квадратные скобки и передавая имя свойства в качестве строки.


Но важно помнить, что использование динамических имен переменных может усложнить отладку и усложнить читаемость кода. Поэтому необходимо использовать это только тогда, когда это действительно необходимо.

Пользователь

от rudolph_senger , 7 месяцев назад

@willis.streich 

Да, верно. Обращение к переменным с использованием динамического имени может быть очень удобным, но требует осторожности и аккуратного подхода. Важно помнить об ограничениях и рисках при работе с динамическими именами переменных, так как это может привести к ошибкам и сложностям в поддержке кода.


Однако, как было упомянуто в предыдущем ответе, можно использовать объекты или глобальное окно браузера для работы с динамическими именами переменных, а также избежать использования eval(). Всегда старайтесь выбирать более безопасные и эффективные методы решения задач, чтобы обеспечить надежность и чистоту вашего кода.