JavaScript дает вам много способов объявить объекты. Когда у вас имеется большая часть доступных данных, наиболее удобным (по моему мнению) является следующее:
var person = {
name: 'John',
age: 23
}; // "object literal syntax"
Любопытная вещь в этом синтаксисе заключается в том, что он идентичен этому:
var person = {
'name': 'John',
'age': 23
}; // "object literal syntax"
То есть вы можете использовать кавычки или опускать их для имен свойств.
Сравнивая это с тем, как работает одно свойство, у вас есть две возможности:
person.birthday = "January 12"; // "dot syntax"
или
person['birthday'] = "January 12"; // "array syntax"
"Точечный синтаксис" работает только тогда, когда правый операнд является фактическим именем свойства. Если вы хотите использовать переменную для имени свойства, вы должны использовать "синтаксис массива", т.е.:
var prop = "birthday";
person[prop] = "January 12";
Теперь, можно ли использовать переменную для имени свойства в "синтаксисе литерала объекта"? Поскольку это не имеет значения, если вы укажете имена свойств, не существует очевидного способа использовать переменную там. Я ищу что-то вроде этого:
var prop = "birthday";
var person = {
name: 'John',
age: 23,
(prop): 'January 12'
};
Здесь я использую (prop) как воображаемый синтаксис, используемый для выражения того, что это переменная, а не буквальная строка.
Спасибо.