Почему в классе возникает ошибка Cannot read properties of undefined (reading 'push')?
Добавь классу Admin следующие свойства и методы.
Публичное свойство blacklistedEmails для хранения чёрного списка почтовых адресов пользователей. Значение по умолчанию это пустой массив.
Публичный метод blacklist(email) для добавления почты в чёрный список. Метод должен добавлять значение параметра email в массив хранящийся в свойстве blacklistedEmails.
Публичный метод isBlacklisted(email) для проверки почты в чёрном списке. Метод должен проверять наличие значения параметра email в массиве хранящемся в свойстве blacklistedEmails и возвращать true или false.
После объявления класса мы добавили инициализацию экземпляра и вызовы методов в той последовательности, в которой твой код будут проверять тесты. Пожалуйста ничего там не меняй.
class User {
email;
constructor(email) {
this.email = email;
}
get email() {
return this.email;
}
set email(newEmail) {
this.email = newEmail;
}
}
class Admin extends User {
static AccessLevel = {
BASIC: "basic",
SUPERUSER: "superuser",
};
// Change code below this line
blacklistedEmails;
constructor({email, accessLevel}) {
super(email);
this.accessLevel = accessLevel;
}
blacklist({email}) {
this.blacklistedEmails.push(email);
}
isBlacklisted({email}) {
return blacklistedEmails.includes(email);
}}
const mango = new Admin({
email: "[email protected]",
accessLevel: Admin.AccessLevel.SUPERUSER,
});
console.log(mango.email); // "[email protected]"
console.log(mango.accessLevel); // "superuser"
mango.blacklist("[email protected]");
console.log(mango.blacklistedEmails); // ["[email protected]"]
console.log(mango.isBlacklisted("[email protected]")); // false
console.log(mango.isBlacklisted("[email protected]")); // true
Ошибка: Cannot read properties of undefined (reading 'push'), не могу понять, что не так.
Ответы (1 шт):
Рискну с ответом:
class User {
email;
constructor(email) {
this.email = email;
}
get email() {
return this.email;
}
set email(newEmail) {
this.email = newEmail;
}
}
class Admin extends User {
static AccessLevel = {
BASIC: "basic",
SUPERUSER: "superuser",
};
constructor({ email, accessLevel }) {
super(email);
this.accessLevel = accessLevel;
}
blacklistedEmails = [];
blacklist(email) {
this.blacklistedEmails.push(email);
}
isBlacklisted(email) {
return this.blacklistedEmails.includes(email);
}
}
const mango = new Admin({
email: "[email protected]",
accessLevel: Admin.AccessLevel.SUPERUSER,
});