JavaScript дает вам много способов объявить объекты. Если у вас есть большинство имеющихся под рукой данных, наиболее удобный (на мой взгляд) выглядит следующим образом:Синтаксис объявления объекта 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'
};
Здесь я использую (проп) в качестве мнимого синтаксис, используемый, чтобы выразить, что это переменная, а не символьная строка.
Спасибо.
Я думаю, что вы должны придерживаться синтаксиса массива .. возможно Eval (+ проп + = «12 января «) будет делать трюк, но я не думаю, что это оптимальное решение. –
@PhilippeBoissonneault - Ack! Eval * не требуется *, пожалуйста, не используйте его в этом контексте. –
Вы ищете эквивалент переменных переменных PHP: '$ foo = bar; $ bar = '123'; echo $$ foo; // фактически отображает '123'' – Ray