首页 > 解决方案 > 对象属性未定义,console.log()'d 后的一行

问题描述

我正在尝试根据从服务器检索到的 json 对象绘制一个表格和表格,以将数据添加到页面上的所述表格中。我收到一个未捕获的 typeError 并且无法弄清楚原因。

如果我 console.log() 对象,它会按预期在控制台中打印出来。我什至可以输出特定的属性没问题。但是当我尝试使用任何属性时,在 html 刺痛中,我得到“未捕获的类型错误:无法读取未定义的属性 'formName'”

function testFunc(subform){
    console.log(subForm.layout.formName); //<--- prints the name to the console

    var form = '<div class="assetSubForm"><h2>' + subForm.layout.formName + '</h2>';
    console.log(form); //<--- error's out???

    return form;
}

对象如下:

{records: false, layout: {…}}
layout:
    fields: (5) [{…}, {…}, {…}, {…}, {…}]
    formID: 30
    formName: "Part 11 - Building Clearance And Fire Appliances"
    position: 120
    __proto__: Object
records: false
__proto__: Object

我一辈子都想不通为什么。我试过用谷歌搜索它,但结果是空的,因为我不知道如何用适当的搜索词来表达它,而且所有出现的结果都与范围或拼写错误有关(例如,在匿名函数中定义并引用的对象外部)。

标签: javascriptobjecttypeerror

解决方案


您的参数名称是,您在代码的其他部分中subform引用。subForm我假设subForm在该范围内有一个可见的变量,但它的值会发生变化,因此取决于您何时调用该函数,它有时不起作用。


推荐阅读