⊗jsOpIhCOM 32 of 60 menu

Aufruf einer überschriebenen Methode in OOP in JavaScript

Beim Überschreiben verliert der Nachkomme den Zugriff auf die überschriebene Methode des Elternteils. Dennoch kann man darauf zugreifen. Dies geschieht mit dem Schlüsselwort super, das auf die Elternklasse verweist.

Schauen wir uns ein Beispiel an, bei dem wir Zugriff auf die Elternmethode benötigen könnten. Nehmen wir an, wir haben die folgende Elternklasse:

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

Nehmen wir an, wir haben in der Nachkommenklasse die Methode des Elternteils überschrieben:

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

Man kann feststellen, dass im überschriebenen Methode bei Erfüllung der Bedingung praktisch der Code der Elternmethode ausgeführt wird. Es ergibt sich eine unnötige Code-Duplizierung.

Man kann diese beseitigen, indem man die Methode des Elternteils aufruft. Tun wir das:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // Methode des Elternteils } else { throw new Error('student name error'); } } }

Gegeben ist der folgende Code:

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'); } } }

In der Klasse Employee korrigieren Sie und vereinfachen Sie den Age-Setter, indem Sie die Originalmethode des Elternteils verwenden.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen