Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗jsOpIhOPM 31 of 60 menu

Перавызначэнне метадаў бацькі ў ААП у JavaScript

Клас-нашчадак можа перавызначыць метад бацькі, стварыўшы метад з такой самой назвай. Давайце паглядзім на прыкладзе. Хай у нас ёсць наступны бацькоўскі клас:

class User { setName(name) { this.name = name; } getName() { return this.name; } }

Давайце ў класе-нашчадку створым аднайменны метад:

class Student extends User { setName(name) { } }

Як правіла, перавызначэнне метадаў бацькі трэба для таго, каб змяніць ці дапоўніць паводзіны гэтага метаду. Давайце ў нашым выпадку дадам праверку даўжыні імя:

class Student extends User { setName(name) { if (name.length > 0) { this.name = name; } else { throw new Error('student name error'); } } }

Давайце пераканаемся ў тым, што выклікаецца менавіта перавызначаны метад. Для пачатку створым аб'ект класа нашчадка:

let student = new Student;

Цяпер выклічам наш метад, перадаўшы ў яго карэктнае значэнне:

student.setName('john');

А цяпер выклічам метад, перадаўшы ў яго некарэктнае значэнне. У выніку ўбачым у кансолі выкінуўю памылку:

student.setName(''); // памылка

У класе User зрабіце гетэр і сетэр узросту.

У класе Employee перавызначыце сетэр узросту і зрабіце ў ім праверку на тое, што ўзрост ад 18 да 65 гадоў.

byenru