对象属性未定义,控制台后一行.log()'d



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

如果我控制台.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

我一辈子都无法理解为什么。我尝试在谷歌上搜索它,但结果是空的,因为我无法弄清楚如何在适当的搜索词中使用它,并且出现的所有结果都与范围或拼写错误有关(例如,在匿名函数中定义并在外部引用的对象(。

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

您正在将参数视为subform但您正在尝试访问subForm console.log

请参阅代码的第 1 行和第 2 行。

最新更新