Ответ 1
Синтаксис []
можно использовать в качестве имени свойства (по сравнению с синтаксисами .prop
и prop: value
, где они всегда рассматриваются как строки):
var myObject = {};
var myVar = "name";
myObject[myVar] = "value";
Однако невозможно использовать это внутри объектного литерала. Сначала необходимо создать объект, а затем назначить каждое свойство отдельно.
Изменить
С ES6 это теперь возможно с помощью ComputedPropertyName, который проявляется в форме следующего синтаксиса:
var myVar = "name";
var myObject = {
[myVar]: "value"
};