Дэн, вы всегда должны смотреть на ошибки и пытаться выяснить, что происходит. Ваша ошибка говорит: Uncaught TypeError: Cannot read property 'toString' of undefined
Line: 22
Что означает: «Эй, то, что вы пытаетесь вызвать toString
, на самом деле не является чем-то похожим на объект или значение, но это undefined
.
Теперь вам нужно go в строку 22:
this.currentOperand = this.currentOperand.toString() + number.toString();
И попытаться выяснить, что не так - обычно вы используете для этого отладчик или просто консоль. log, как это:
appendNumber(number) {
console.log('Current operand: ', this.currentOperand);
console.log('Number: ', number);
this.currentOperand = this.currentOperand.toString() + number.toString();
}
В вашем случае - this.currentOperand
- это undefined
, поскольку вы никогда не инициализируете его (оно присваивается в calculator.clear
, но вы никогда не вызываете его).
Это исправление позволит вам продолжить:
const calculator = new Calculator(previousOperandTextElement, currentOperandTextElement);
calculator.clear()