假设我有一个这种形式的 JavaScript 对象:
var myJsObject =
{
A.b: 1
A.c: 2
}
我如何获得 let's say 的价值A.c
?
我试过:
var value = myJsObject['A.c']
但这给了我错误Uncaught TypeError: Cannot set property 'A.c' of undefined
谢谢
假设我有一个这种形式的 JavaScript 对象:
var myJsObject =
{
A.b: 1
A.c: 2
}
我如何获得 let's say 的价值A.c
?
我试过:
var value = myJsObject['A.c']
但这给了我错误Uncaught TypeError: Cannot set property 'A.c' of undefined
谢谢
您不需要“对象”关键字,应该引用属性。这在我的控制台中有效:
var myJsObject = { 'A.b': 1, 'A.c': 2 };
var value = myJsObject['A.c'];
console.log(value); // 2
你不能链接点符号。这应该有效:
var myJsObject = {
A: {
b: 1,
c: 2
}
}
或者,如果您想拥有类似的属性名称A.b
,则需要将其引用,如果名称包含特殊字符:
var myJsObject =
{
'A b': 1,
'A.c': 2
}
编码
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
(此外,您的代码在我添加的行之后也缺少逗号。)