JavaScript-无法设置未定义的属性
var a = "1",b = "hello",
c = { "100" : "some important data" },
d = {};
d[a]["greeting"] = b;
d[a]["data"] = c;
console.debug (d);
我收到以下错误:
Uncaught TypeError:无法设置未定义的属性“ greeting”。
我正在尝试做类似于关联数组的操作。为什么这不起作用?
回答:
您永远不会设置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
}
};
以上是 JavaScript-无法设置未定义的属性 的全部内容, 来源链接: utcz.com/qa/431649.html