无法访问对象的子属性。

时间:2013-01-31 12:49:45

标签: javascript jquery jquery-mobile backbone.js

我有一个javascript对象设置,如下所示:

“someObject” : {
    “A” : { “id” : “323klj”, “name” : “subObject1”, “value” : “0” }
    “B” : { “id” : “63sdf”, “name” : “subObjectB”, “value” : “9” }
}

我正在尝试访问子对象的“value”属性。但是当我像这样访问它们时

console.log(someObject.A.value)  

结果未定义。

如果我尝试将以下内容输出到控制台(一行接一行)

console.log(someObject)
console.log(someObject.A) 
console.log(someObject.A.value) 

在控制台中,我将看到以下内容:

-First Line:someObject将按预期显示,所有子对象和属性保持不变

- 第二行:我将看到子对象A,但缺少“value”属性

- 第三行:未定义。

我的问题是,是否有人对可能导致这种情况发生的事情有任何想法?我很难解决这个问题,我不明白这是怎么回事。我知道这应该在正常情况下有效。仅供参考:这是一个更大的骨干应用程序的一部分,我也在使用jquery mobile。这可能与其中一个框架有关吗? (实际的代码太复杂了,不能粘贴在这里,我只是想举例说明发生了什么)。

2 个答案:

答案 0 :(得分:2)

这对我有用:

var someObject = {
    A : { id : "323klj", name : "subObject1", value : "0" },
    B : { id : "63sdf", name : "subObjectB", value : "9" }
}
console.log(someObject.A.value); //returns 0
console.log(someObject.B.value); //returns 9

注意:复制粘贴文本我必须更改双引号,在我的浏览器中它们显示为“”所以我将它们更改为“

答案 1 :(得分:1)

好吧,我最终使用了一种解决方法,所以我讨厌让其他人在这个问题上留出时间并将其标记为已回答,但仍然让我感到非常困惑......