Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите по свойствам объекта. (https://javascript.ru/forum/misc/72428-podskazhite-po-svojjstvam-obekta.html)

lampa17 28.01.2018 20:22

Подскажите по свойствам объекта.
 
Здравствуйте. Подскажите, как обратится к свойству объекта если имя свойства у меня типа String
Код:

var to_db = {
db_name:"DBName",
db_login:"DBLogin"
}

Есть переменная типа String - key="db_name".
to_db.db_name - работает
to_db.key - понятно что нет, не могу понять как по ключу вытянуть значение из объекта?

Aetae 28.01.2018 20:25

to_db[key]
Прочитайте хотябы базовый учебник на этом сайте, там не так много.

lampa17 28.01.2018 20:56

Спасибо, учебник я читал, просто давно. Немного торможу, давно не писал на js.

рони 28.01.2018 20:59

lampa17,
доступ-через-квадратные-скобки

lampa17 28.01.2018 22:40

Ок. Спасибо, ну если уж задал вопрос, можно это как-нибудь через eval сделать без квадратных скобок?

рони 28.01.2018 23:24

lampa17,
var to_db = {
db_name:"DBName",
db_login:"DBLogin"
}, key="db_name";
alert(eval("to_db."+key));

Aetae 28.01.2018 23:36

Можно, но не нужно. Eval во-первых небезопасна если работаешь с чужими строками, а во-вторых отключает любые внутренние оптимизации движка, из-за чего вся функция работает на порядок медленнее.
Даже если дана длинная цепочка в виде строки, всё равно выгодней написать функцию которая будет разбирать строку и делать это через скобочки, чем использовать eval.


Часовой пояс GMT +3, время: 16:12.