读取javascript对象属性

时间:2012-11-30 18:02:29

标签: javascript jquery

假设我有一个这种形式的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

谢谢

3 个答案:

答案 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行之后,您的代码缺少逗号。)