【发布时间】:2013-01-31 12:49:45
【问题描述】:
我有一个类似于以下内容的 javascript 对象:
“someObject” : {
“A” : { “id” : “323klj”, “name” : “subObject1”, “value” : “0” }
“B” : { “id” : “63sdf”, “name” : “subObjectB”, “value” : “9” }
}
我正在尝试访问子对象的“值”属性。但是,当我像这样访问它们时
console.log(someObject.A.value)
结果未定义。
如果我尝试像这样(一行接一行)将以下内容输出到控制台
console.log(someObject)
console.log(someObject.A)
console.log(someObject.A.value)
在控制台中,我将看到以下内容:
-第一行:someObject 将按预期显示,所有子对象和属性都完好无损
-第二行:我会看到子对象A,但是缺少“值”属性
-第三行:未定义。
我的问题是,有人对可能导致这种情况发生的原因有任何想法吗?我很难解决这个问题,我什至不明白这怎么可能。我知道这应该在正常情况下工作。仅供参考:这是一个更大的主干应用程序的一部分,我也在其中使用 jquery mobile。这可能与这些框架之一有关吗? (实际代码太复杂,这里无法粘贴,我只是想举个例子来说明是怎么回事)。
【问题讨论】:
-
对象是如何生成的?属性是怎么设置的?会不会是
value是通过 Ajax 填充的,而您正试图访问它设置的 before 属性?一些控制台有一种奇怪的评估对象的方式,所以你不应该相信每一个输出。 -
感谢菲利克斯的建议
标签: javascript jquery jquery-mobile backbone.js