Не могу обратиться в экземпляре класса к статическому свойству
Создаю класс со статическим свойством и простым методом, который возвращает пароль, составленный из имени и статического свойства. Затем создаю экземпляр класса и в вызове метода получаю Annundefined. В чем причина?
class User {
constructor(name, surname) {
this.name = name;
this.surname = surname;
}
static pass = '12345';
getPassword() {
return ‘${this.name}${this.pass}’;
}
}
let user1 = new User('Ann', 'Smith');
console.log(user1.getPassword());
Ответы (1 шт):
Автор решения: Sdotik
→ Ссылка
Дело в том, что к статическим свойствам внутри класса надо обращаться по имени самого класса, а не через this. Так как в экземпляре просто нет свойства pass.
class User {
constructor(name, surname) {
this.name = name;
this.surname = surname;
}
static pass = '12345';
getPassword() {
return ‘${this.name}${User.pass}’; // нужно обращаться по имени класса к статическому свойству
}
}
let user1 = new User('Ann', 'Smith');
console.log(user1.getPassword());