SlideShare a Scribd company logo
Наслідування класів
Наслідування на рівні об’єктів ми задавали
через __proto__ . На рівні класів це
можна роботи так:
ChildClass.prototype =
Object.create(ParentClass.prototype);
Наприклад:
Fox.prototype =
Object.create(Animal.prototype);
Розглянемо на прикладі Animal і його нащадка Fox.
function Animal(name) {
this.name = name;
this.mass = 1;
}
Animal.prototype.sayHi = function() {
alert( "Привіт, мене звати " + this.name );
}
function Fox(name) {
this.name = name;
this.mass = 1;
}
Fox.prototype = Object.create(Animal.prototype); // успадковування
Fox.prototype.cheat = function() {
alert( "Ходи до мене ближче, щоб я краще чула" );
}
var fox = new Fox("Лисичка-сестричка");
alert(fox.mass);
fox.cheat();
Слід подбати, щоб
Fox.prototype = Object.create(Animal.prototype);
було зразу після конструктора нащадка, інакше
перезаписалися б всі нові методи нащадка (у нас –
cheat() ).
Легко бачити, що у Animal і Fox повторюються код
this.name = name;
this.mass = 1;
Щоб цього уникнути, можна викликати код з Animal:
function Fox(name) {
Animal.apply(this, arguments);
}
При потребі у класі-нащадку можна перевизначити деякі
методи з батьківського класу.
Наприклад:
Fox.prototype.sayHi = function() {
alert( "Привіт, красунчику. Познайомимось ближче?" );
}
Задача 91
Напишіть клас Animal і його нащадки
– класи Hare, Wolf, Bear, Fox, які б
відображали основні риси тварин з казки
про колобка. Виконайте наочну графічну
реалізацію екземплярів класу.

More Related Content

More from Олег Вілігурський

Theme20_ajax
Theme20_ajaxTheme20_ajax
Theme19_css
Theme19_cssTheme19_css
Theme18_css
Theme18_cssTheme18_css
Theme17a css
Theme17a cssTheme17a css
Theme17
Theme17Theme17
Theme16
Theme16Theme16
Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 13
 Coding for Future in Lutsk. JavaScript. Part 13 Coding for Future in Lutsk. JavaScript. Part 13
Coding for Future in Lutsk. JavaScript. Part 13
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 11
Coding for Future in Lutsk. JavaScript. Part 11Coding for Future in Lutsk. JavaScript. Part 11
Coding for Future in Lutsk. JavaScript. Part 11
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 10
Coding for Future in Lutsk. JavaScript. Part 10Coding for Future in Lutsk. JavaScript. Part 10
Coding for Future in Lutsk. JavaScript. Part 10
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 8
Coding for Future in Lutsk. JavaScript. Part 8Coding for Future in Lutsk. JavaScript. Part 8
Coding for Future in Lutsk. JavaScript. Part 8
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 7
Coding for Future in Lutsk. JavaScript. Part 7Coding for Future in Lutsk. JavaScript. Part 7
Coding for Future in Lutsk. JavaScript. Part 7
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 4
Coding for Future in Lutsk. JavaScript. Part 4Coding for Future in Lutsk. JavaScript. Part 4
Coding for Future in Lutsk. JavaScript. Part 4
Олег Вілігурський
 
Coding for Future in Lutsk. JavaScript. Part 3
Coding for Future in Lutsk. JavaScript. Part 3Coding for Future in Lutsk. JavaScript. Part 3
Coding for Future in Lutsk. JavaScript. Part 3
Олег Вілігурський
 

More from Олег Вілігурський (20)

Theme21_json
Theme21_jsonTheme21_json
Theme21_json
 
Theme20_ajax
Theme20_ajaxTheme20_ajax
Theme20_ajax
 
Theme19_css
Theme19_cssTheme19_css
Theme19_css
 
Theme18_css
Theme18_cssTheme18_css
Theme18_css
 
Theme17a css
Theme17a cssTheme17a css
Theme17a css
 
Theme17
Theme17Theme17
Theme17
 
Theme16
Theme16Theme16
Theme16
 
Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15
 
Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14
 
Coding for Future in Lutsk. JavaScript. Part 13
 Coding for Future in Lutsk. JavaScript. Part 13 Coding for Future in Lutsk. JavaScript. Part 13
Coding for Future in Lutsk. JavaScript. Part 13
 
Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12
 
Coding for Future in Lutsk. JavaScript. Part 11
Coding for Future in Lutsk. JavaScript. Part 11Coding for Future in Lutsk. JavaScript. Part 11
Coding for Future in Lutsk. JavaScript. Part 11
 
Coding for Future in Lutsk. JavaScript. Part 10
Coding for Future in Lutsk. JavaScript. Part 10Coding for Future in Lutsk. JavaScript. Part 10
Coding for Future in Lutsk. JavaScript. Part 10
 
Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9
 
Coding for Future in Lutsk. JavaScript. Part 8
Coding for Future in Lutsk. JavaScript. Part 8Coding for Future in Lutsk. JavaScript. Part 8
Coding for Future in Lutsk. JavaScript. Part 8
 
Coding for Future in Lutsk. JavaScript. Part 7
Coding for Future in Lutsk. JavaScript. Part 7Coding for Future in Lutsk. JavaScript. Part 7
Coding for Future in Lutsk. JavaScript. Part 7
 
Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6
 
Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5
 
Coding for Future in Lutsk. JavaScript. Part 4
Coding for Future in Lutsk. JavaScript. Part 4Coding for Future in Lutsk. JavaScript. Part 4
Coding for Future in Lutsk. JavaScript. Part 4
 
Coding for Future in Lutsk. JavaScript. Part 3
Coding for Future in Lutsk. JavaScript. Part 3Coding for Future in Lutsk. JavaScript. Part 3
Coding for Future in Lutsk. JavaScript. Part 3
 

Recently uploaded

LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdfLOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
Olga Kudriavtseva
 
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdfГлавлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
olaola5673
 
Віртуальна виставка «Допомога НАТО Україні»
Віртуальна виставка «Допомога НАТО Україні»Віртуальна виставка «Допомога НАТО Україні»
Віртуальна виставка «Допомога НАТО Україні»
Vinnytsia Regional Universal Scientific Library named after Valentin Otamanovsky
 
29.05.2024.docx29.05.2024.docx29.05.2024.docx
29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx
29.05.2024.docx29.05.2024.docx29.05.2024.docx
Репетитор Історія України
 
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdfПідсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
ssuser7541ef1
 
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdfPOPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
Olga Kudriavtseva
 
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
tetiana1958
 
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
estet13
 
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdfKUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
Olga Kudriavtseva
 
Основи_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdfОснови_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdf
olaola5673
 

Recently uploaded (10)

LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdfLOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
LOBANOVA_Tetiana_PORTFOLIO_Librarian.pdf
 
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdfГлавлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
 
Віртуальна виставка «Допомога НАТО Україні»
Віртуальна виставка «Допомога НАТО Україні»Віртуальна виставка «Допомога НАТО Україні»
Віртуальна виставка «Допомога НАТО Україні»
 
29.05.2024.docx29.05.2024.docx29.05.2024.docx
29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx29.05.2024.docx
29.05.2024.docx29.05.2024.docx29.05.2024.docx
 
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdfПідсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
Підсумки, перспективи роботи профспільнот педагогів ЗДО (2).pdf
 
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdfPOPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
POPOVICH_Nina_PORTFOLIO_librarianCRE.pdf
 
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...
 
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
«Слова і кулі». Письменники, що захищають Україну. Єлизавета Жарікова
 
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdfKUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
KUDRIAVTSEVA_Olha_PORTFOLIO_librarian.pdf
 
Основи_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdfОснови_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdf
 

Theme23-oop2(end)

  • 1. Наслідування класів Наслідування на рівні об’єктів ми задавали через __proto__ . На рівні класів це можна роботи так: ChildClass.prototype = Object.create(ParentClass.prototype); Наприклад: Fox.prototype = Object.create(Animal.prototype);
  • 2. Розглянемо на прикладі Animal і його нащадка Fox. function Animal(name) { this.name = name; this.mass = 1; } Animal.prototype.sayHi = function() { alert( "Привіт, мене звати " + this.name ); } function Fox(name) { this.name = name; this.mass = 1; } Fox.prototype = Object.create(Animal.prototype); // успадковування Fox.prototype.cheat = function() { alert( "Ходи до мене ближче, щоб я краще чула" ); } var fox = new Fox("Лисичка-сестричка"); alert(fox.mass); fox.cheat();
  • 3. Слід подбати, щоб Fox.prototype = Object.create(Animal.prototype); було зразу після конструктора нащадка, інакше перезаписалися б всі нові методи нащадка (у нас – cheat() ). Легко бачити, що у Animal і Fox повторюються код this.name = name; this.mass = 1; Щоб цього уникнути, можна викликати код з Animal: function Fox(name) { Animal.apply(this, arguments); }
  • 4. При потребі у класі-нащадку можна перевизначити деякі методи з батьківського класу. Наприклад: Fox.prototype.sayHi = function() { alert( "Привіт, красунчику. Познайомимось ближче?" ); }
  • 5. Задача 91 Напишіть клас Animal і його нащадки – класи Hare, Wolf, Bear, Fox, які б відображали основні риси тварин з казки про колобка. Виконайте наочну графічну реалізацію екземплярів класу.