Как я могу ссылаться на объект динамически?
-
05-07-2019 - |
Вопрос
В Javascript у меня есть объект:
obj = { one: "foo", two: "bar" };
Теперь я хочу сделать это
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
Но, конечно, это не работает. Каков будет правильный способ динамической ссылки на этот объект?
Решение
краткий ответ: obj [a]
длинный ответ: obj.field
- это просто сокращение для obj [" field "]
для особого случая, когда ключ является константной строкой без пробелов, точки или другие неприятные вещи. в вашем вопросе ключ не был константой, поэтому просто используйте полный синтаксис.
Другие советы
Вот так:
obj[a]
В качестве примечания, глобальные переменные прикреплены к " окну " объект, так что вы можете сделать
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
Это предупредит "привет, привет, привет"
Не связан с StackOverflow