Javascript 未捕获类型错误:无法设置属性';价值';在HtmlButtoneElement.buttonClick中未定义的的

Javascript 未捕获类型错误:无法设置属性';价值';在HtmlButtoneElement.buttonClick中未定义的的,javascript,Javascript,我试图使计算器工作时遇到问题。 单击按钮后,控制台将显示这样一条消息: “未捕获的TypeError:无法在HtmlButtoneElement.buttonClick设置未定义的属性'value'。” 以下是指向存储库的链接: 在这个计算器中,底部的输入最终将被隐藏,并用于记录和计算方程式。我希望上面的输入类似于Windows计算器输入 附言:我是个新手,谢谢你的耐心等待 Javascript在抱怨,因为正如控制台所说,在代码的第49行有一个元素具有属性值,而该元素未定义。因此,它表示“无法

我试图使计算器工作时遇到问题。 单击按钮后,控制台将显示这样一条消息:

“未捕获的TypeError:无法在HtmlButtoneElement.buttonClick设置未定义的属性'value'。”

以下是指向存储库的链接:

在这个计算器中,底部的输入最终将被隐藏,并用于记录和计算方程式。我希望上面的输入类似于Windows计算器输入


附言:我是个新手,谢谢你的耐心等待

Javascript在抱怨,因为正如控制台所说,在代码的第49行有一个元素具有属性
,而该元素未定义。因此,它表示“无法读取未定义元素的值”

此元素是
calculator.mathRow.length
:您要求的是
length
,但
calculator.mathRow
不是数组:它是
HTML元素
,使用

this.mathRow = document.getElementById("mathrow");
在代码的第19行

如果您尝试
console.log(mathRow)
它将打印出来

<input type="text" id="mathrow">

问题在于:

if (calculator.mathRow[calculator.mathRow.length - 1].value = "+")
我必须先写。value然后[]。像这样:

if (calculator.mathRow.value[calculator.mathRow.length - 1] = "+")

请在这里发布代码,作为演示该问题的最小示例。通常发生这种情况的原因是:
el.addEventListener(“单击”,calculator.buttonClick)
reference calculator.buttonClick不存在或尚未分配值。您正在表达式中进行赋值,该赋值取决于已计算的表达式。