尽管存在于chrome控制台树视图中,但对象属性(type = object)未定义

时间:2014-07-07 21:23:34

标签: javascript google-chrome object console undefined

我已将json响应保存为chrome控制台中的全局对象变量(chrome存储为 temp1 ),将其对象属性设置为下面的fieldsObj1:

>> var fieldsObj1 = temp1.fields;  

chrome控制台中的这个命令显示了fieldsObj1属性的树形视图,我在下面展开并粘贴了这些属性,留下了相关的' undefined' property: contentAll.full

>> fieldsObj1


Object {contentText.split: Array[12], metricsListed: Array[1], sourceDescription: Array[1], sourceCode: Array[1], geoLocation: Array[1]…}
    _rev: Array[1]
    coded.matchedIn: Array[3]

[...此处跳过了许多按字母顺序排列的属性] ...直到我们在下面找到相关的 contentAll.full

    contentAll.full: Array[1]
        0: "Just updated my blog. Check it out! In Spite of Threats, Parents, States and Teachers are Dumping Common Core http://t.co/wlxofg2G2K  #tcot"
        length: 1
        __proto__: Array[0]

[... Chrome控制台对象树中列出的更多属性...]

contentAll.full 在Chrome树对象查看器中显示为'数组[1]',数组项是我尝试存储到的文本数据局部变量。

但是,以下命令表明由于包含对象 fieldsObj1.contentAll 未定义,数组项无法访问。

fieldsObj1.contentAll.full[0]
TypeError: Cannot read property 'full' of undefined
fieldsObj1.contentAll.full
TypeError: Cannot read property 'full' of undefined
fieldsObj1.contentAll
undefined

当我在chrome树视图中看到它时,它是如何定义的?

如何将看似无法访问的数据保存到本地变量?

1 个答案:

答案 0 :(得分:2)

fieldsObj1.contentAll.full[0]

不同
fieldsObj1['contentAll.full'][0]

sqare括号表示法允许您更自由地定义对象键。正如您所看到的,fieldsObj1上有一个名为&contentAll.full'的属性,但定义此类属性并不等同于创建fieldsObj1.contentAll对象并定义属性{{1那里。