Size: a a a

JavaScript.Ninja

2021 May 29

DZ

D Z in JavaScript.Ninja
Да
источник

H

Heitz in JavaScript.Ninja
Ну это автоматом
источник

БО

Богдан Ошовський... in JavaScript.Ninja
Валидное ли такое написание класса?
источник

IK

Illya Klymov in JavaScript.Ninja
Такое это какое?
источник

БО

Богдан Ошовський... in JavaScript.Ninja
Имею веду в методах класа админ использовать Super или можно this?
источник

MK

Maks Kravchenko in JavaScript.Ninja
this
источник

БО

Богдан Ошовський... in JavaScript.Ninja
Но я же вызываю родительский метод в дочернем разве не Супер надо??
источник

MK

Maks Kravchenko in JavaScript.Ninja
наследуя родительский класс (extends User), вы уже получаете родительские методы внутри Admin
источник

M

Michael in JavaScript.Ninja
Вызови супер в конструкторе и используй this
источник

БО

Богдан Ошовський... in JavaScript.Ninja
Типо так?
источник

MK

Maks Kravchenko in JavaScript.Ninja
+
источник

DZ

D Z in JavaScript.Ninja
Юз кейс для супер - если ты расширяешь метод родителя и хочешь вернуть изначальный результат, то в начале (по спецификации) метода нужно вызвать этот метод с super. , добавить своей логики и вернуть
источник

БО

Богдан Ошовський... in JavaScript.Ninja
Я нифига не понял)))
источник

DZ

D Z in JavaScript.Ninja
Ну и ладно)
источник

MK

Maks Kravchenko in JavaScript.Ninja
class User {
 constructor(name) {
   this.name = name;
 }

 // выведет ‘hi ${this.name}’
 hi() {
   console.log(`hi ${this.name}`);
 }
}

class ChildUser extends User {
 // использовали конструктор, так как у родительского конструктора требуется имя и при наследовании надо его передать
 // если ни чайлдовый, ни родительский не требуют аргументов при создании, можно не писать
 constructor(name) {
   super(name);
 }

 // если хотим вызвать оригинальный метод и добавить логики - обращаться нужно через супер
 // выведет сначала то, что и родитель, потом hi 2
 hi() {
   super.hi();
   console.log(‘hi 2’);
 }
}


советую попробовать в codepene или в аналогах)
источник

RM

Roman Mironov in JavaScript.Ninja
У родителя getfullname возвращает имя фамилию, в дочерним классе ты перезаписываешь метод и он теперь возращает еще и отчество. Чтоб получить родительский - используют super
источник

БО

Богдан Ошовський... in JavaScript.Ninja
То есть такая запись будет правильная??
class User {
 constructor(name, surname, email, yearOfBirth) {
   this.name = name;
   this.surname = surname;
   this.email = email;
   this.yearOfBirth = yearOfBirth;
 }

 getFullname() {
   return ${this.name} ${this.surname};
 }
}
class Admin extends User {
 
 read() {
     return i'm ${super.getFullname()} i can read
 }
}
const admin = new Admin("Dmytro", "Yummy", "dmytro@test.com", 1995);
источник

DZ

D Z in JavaScript.Ninja
О, хорошее объяснение, не то что у меня)
источник

RM

Roman Mironov in JavaScript.Ninja
Несовсем
источник

RM

Roman Mironov in JavaScript.Ninja
Constructor + super необходим
источник