@vasay06

Зачем объявлять name в конструкторе?

class User {

  constructor(name) {
   this.name = name;
  }

  get name() {
    return this._name;
  }

  set name(value) {
    if (value.length < 4) {
      alert("Имя слишком короткое.");
      return;
    }
    this._name = value;
  }

}

let user = new User("Иван");
alert(user.name); // Иван

user = new User(""); // Имя слишком короткое.

Зачем тут в выделенной строчке объявлять cвойство name, разве если его нет, то оно не возьмется как свойство-аксессор из прототипа?
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
В прототипе есть только свойство (get/set) для name, а само значение хранится в поле _name экземпляра класса. Потому надо присвоить, чтобы оно там появилось, изначально его нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы