假设我有一个这种形式的JavaScript对象:
var myJsObject =
{
A.b: 1
A.c: 2
}
如何获得让我们说A.c
的价值?
我试过了:
var value = myJsObject['A.c']
但是这给了我错误Uncaught TypeError: Cannot set property 'A.c' of undefined
谢谢
答案 0 :(得分:4)
您不需要“Object”关键字,应引用属性。这在我的控制台中有效:
var myJsObject = { 'A.b': 1, 'A.c': 2 };
var value = myJsObject['A.c'];
console.log(value); // 2
答案 1 :(得分:1)
你不能链点符号。这应该有效:
var myJsObject = {
A: {
b: 1,
c: 2
}
}
或者,如果您想拥有类似A.b
的属性名称,则需要引用该名称,如果名称包含特殊字符:
var myJsObject =
{
'A b': 1,
'A.c': 2
}
答案 2 :(得分:1)
代码
var myJsObject =
{
A.b: 1
}
会产生语法错误,因为必须引用句点,因为它们在语言中具有特殊含义。 JavaScript解释器将A.b
读取为尝试从b
对象获取A
属性,但它需要标识符名称而不是操作。考虑一个类似的例子:
var myJsObject =
{
foo-bar: 1
}
这里,连字符被读取为减法运算符,并且还产生语法错误。
相反,请使用带引号的属性名称:
var myJsObject =
{
"A.b": 1,
"A.c": 2
}
(另外,您添加的"A.b": 1
行之后,您的代码缺少逗号。)