вы никогда не устанавливаете d[a]
на любое значение.
Из-за этого d[a]
оценивается как undefined
, и вы не можете установить свойства на undefined
.
Если вы добавили d[a] = {}
сразу после d = {}
, все должно работать как ожидалось.
В качестве альтернативы вы можете использовать инициализатор объекта:
d[a] = {
greetings: b,
data: c
};
Или вы можете установить все свойства d
в экземпляре анонимной функции:
d = new function () {
this[a] = {
greetings: b,
data: c
};
};
Если вы находитесь в среде, поддерживающей функции ES2015, вы можете использовать имена вычисленных свойств :
d = {
[a]: {
greetings: b,
data: c
}
};