@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, разве если его нет, то оно не возьмется как свойство-аксессор из прототипа?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
В прототипе есть только свойство (get/set) для name, а само значение хранится в поле _name экземпляра класса. Потому надо присвоить, чтобы оно там появилось, изначально его нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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