this в классе javascript

Я новичок в javascipt и разбираюсь с контекстом и классами, с контекстом все вроде понятно, а вот с классами возникли вопросы

Почему в конструкторе класса мы присваиваем переменные через this.variable, и вызываем функции через this.function, как в этом примере?

class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  getArea() {
    return this.calcArea();
  }

  calcArea() {
    return this.height * this.width;
  }
}

Через this можно объявить (присвоить) переменную экземпляру класса? Можете объяснить что происходит при вызове this.height и что происходит с классом? Как присваивается переменная?


Ответы (1 шт):

Автор решения: DAVELANTOR

this - можно понять как инстнс данного класа. То есть если создать объект по прототипу этого класа, this будет этим самым объектом, this.calcArea() - методом этого объекта, а this.height - пропом этого объекта.

const rect = new Rectangle(500, 500)

Здесь this - это rect, this.height = 500, а метод calcArea будет напрямую работать со значениями, полученными выше при присваивании и вернет 500 * 500.

→ Ссылка