В конструкторе класса переменные установлены равными себе в Javascript Вычислить код? - PullRequest
0 голосов
/ 31 марта 2020

Я изучаю ванильный калькулятор JS. Я потратил несколько дней, пытаясь понять конструктор, использованный ниже;

    class Calculator {
  constructor(previousOperandTextElement, currentOperandTextElement) {
    this.previousOperandTextElement = previousOperandTextElement
    this.currentOperandTextElement = currentOperandTextElement
    this.clear()
  }

Мой вопрос касается функции clear (). Сама функция очистки имеет следующий код; как только новый калькулятор создан, он очищает дисплей калькулятора.

  clear() {
this.currentOperand = '' 
this.previousOperand = ''
this.operation = undefined

}

Меня смущает то, что мы не просто пишем ... this.currentOperandTextElement = ''; Я включил ниже переменной определения и HTML набор данных, в котором появляется currentOperand. Мне кажется, что этот код должен делать то же самое, но полностью его ломает!

JS Переменные

const previousOperandTextElement = document.querySelector('[data-previous-operand]')
const currentOperandTextElement = document.querySelector('[data-current-operand]')

JS Object Экземпляр

const calculator = new Calculator(previousOperandTextElement, currentOperandTextElement)const calculator = new Calculator(previousOperandTextElement, currentOperandTextElement)

HTML

<div class="calculator-grid">
<div class="output">
  <div data-previous-operand class="previous-operand"></div>
  <div data-current-operand class="current-operand"></div>
</div>

CSS

      .output .previous-operand {
      color: rgba(255, 255, 255, .75);
      font-size: 1.5rem;
    }

     .output .current-operand {
     color: white;
     font-size: 2.5rem;
}
...