⊗jsOpIhCOM 32 of 60 menu

Повикување на преоптоварениот метод во ООП во JavaScript

При преоптоварување, потомокот го губи пристапот до преоптоварениот метод на родителот. Сепак, сепак е можно да се добие пристап до него. Ова се прави со користење на клучната збор super, која што укажува на родителската класа.

Ајде да погледнеме на пример, кога може да ни треба пристап до родителскиот метод. Нека имаме следнава родителска класа:

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

Нека во класата-потомок ја преоптовариме методата на родителот:

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

Може да се забележи дека во преоптоварената метода при исполнување на условот всушност се извршува кодот на родителската метода. Се добива непотребно дуплирање на кодот.

Може да се ослободиме од него, ако се повика методата на родителот. Ајде да го направиме ова:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // метода на родителот } else { throw new Error('student name error'); } } }

Даден е следниов код:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } else { throw new Error('need age less 120'); } } }

Во класата Employee поправете и поедноставете го сетерот за возраста, користејќи ја оригиналната метода на родителот.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј