对象属性未定义,被console.log()之后一行

时间:2019-05-28 15:04:32

标签: javascript object uncaught-typeerror

我正在尝试绘制一个表格和表单,以便根据从服务器检索到的json对象,向页面上的所述表格添加数据。我遇到了Uncaught typeError,无法弄清原因。

如果我console.log()对象,它会按预期在控制台中打印出来。我什至可以输出特定的属性没有问题。但是,当我尝试使用任何属性时,在html字符串中,我收到“ Uncaught TypeError:无法读取未定义的属性'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

我无法为自己的一生而死。我尝试使用谷歌搜索,但由于无法弄清楚如何在合适的搜索词中用词而出现空白,并且所有出现的结果都与范围或拼写错误有关(例如,在匿名函数中定义并引用的对象)外面)。

2 个答案:

答案 0 :(得分:1)

您的参数名称为subform,您在代码的其他部分中引用了subForm。 我假设在该作用域中有一个subForm变量,但是它的值会改变,因此取决于您何时调用该函数,有时它不起作用。

答案 1 :(得分:0)

您将参数设为subform,但您尝试访问subForm中的console.log

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