javascript - 对象属性未定义,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
我一辈子都想不通为什么。我试过用谷歌搜索它,但结果是空的,因为我不知道如何用适当的搜索词来表达它,而且所有出现的结果都与范围或拼写错误有关(例如,在匿名函数中定义并引用的对象外部)。
解决方案
您的参数名称是,您在代码的其他部分中subform
引用。subForm
我假设subForm
在该范围内有一个可见的变量,但它的值会发生变化,因此取决于您何时调用该函数,它有时不起作用。