@Levingstoun

Зачем в синтаксисе классов get/set?

Чем вот эта запись, отличается от вот этой?
class Name {
  get name() {
  ////
  }

  set valueName {
  ///
  }
}


class Name {
  getName() {
  ////
  }

  setValueName() {
  ///
  }
}

Для чего тут нужны get/set методы?
  • Вопрос задан
  • 945 просмотров
Решения вопроса 1
При чтении и записи в свойство экземпляра данного класса
const instance = new Name();
const name = instance.name; // чтение свойства, вызовется геттер класса Name.
instance.valueName = 'John'; // запись в свойство, вызовется сеттер класса Name.

, будут вызываться геттеры и сеттеры, в которых можно делать все что угодно.

В целом со стороны пользователя класса всё это будет выглядеть как магия. Данный паттерн плох тем, что позволяет задавать неявное поведение кода, когда программист присваивает значение или читает его и происходят какие-нибудь вещи которых он не ожидал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Тем, что можно писать obj.valueName = 'XYZ'.
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега JavaScript
Для того чтоб можно было совершить какие-то действия при получении или присвоении свойства.
https://learn.javascript.ru/descriptors-getters-setters
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Реакция объекта (обработчик) на действия по установке/изменению или возврату своих состояний.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы