Javascript 无法访问对象的子属性。
我设置了一个javascript对象,如下所示:Javascript 无法访问对象的子属性。,javascript,jquery,jquery-mobile,backbone.js,Javascript,Jquery,Jquery Mobile,Backbone.js,我设置了一个javascript对象,如下所示: “someObject” : { “A” : { “id” : “323klj”, “name” : “subObject1”, “value” : “0” } “B” : { “id” : “63sdf”, “name” : “subObjectB”, “value” : “9” } } 我试图访问子对象的“值”属性。但是当我像这样访问它们时 console.log(someObject.A.value) 结果未定义 如
“someObject” : {
“A” : { “id” : “323klj”, “name” : “subObject1”, “value” : “0” }
“B” : { “id” : “63sdf”, “name” : “subObjectB”, “value” : “9” }
}
我试图访问子对象的“值”属性。但是当我像这样访问它们时
console.log(someObject.A.value)
结果未定义
如果我尝试像这样将以下内容输出到控制台(一行接一行)
在控制台中,我将看到以下内容:
-第一行:someObject将按预期显示,且所有子对象和属性保持不变
-第二行:我将看到子对象A,但是缺少“value”属性
-第三行:未定义
我的问题是,有没有人知道是什么让这一切发生的?我在解决这个问题时遇到了困难,我甚至不明白这是怎么可能的。我知道这在正常情况下应该是可行的。仅供参考:这是一个更大的主干应用程序的一部分,我也在使用jquery mobile。这可能与这些框架之一有关吗?(实际代码太复杂,无法粘贴到这里,我只是想给出一个示例来说明发生了什么)。这对我很有用:
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
注意:复制粘贴文本我必须更改双引号,在我的浏览器中它们显示为“”,因此我将它们更改为“”“好吧,我最后使用了一个变通方法,所以我不想让其他人在这个问题上浪费时间,并将其标记为已回答,但我仍然很困惑到底发生了什么…对象是如何生成的?属性是如何设置的?是否
value
是通过Ajax填充的,并且您正在尝试在设置属性之前访问它?有些控制台有一种奇怪的计算对象的方法,所以你不应该相信每一个输出。感谢FelixThanks的建议,让我检查它。Jimmy,我很有信心代码是有效的,只是我的应用程序出了问题。这些奇怪的引语是由于我在一个文本编辑器中写下了这个问题。
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