⊗jsOpIhCOM 32 of 60 menu

Oproepen van een overschreven methode in OOP in JavaScript

Bij overschrijven verliest de afstammeling toegang tot de overschreven methode van de ouder. Het is echter nog steeds mogelijk om er toegang toe te krijgen. Dit wordt gedaan met behulp van het sleutelwoord super, dat verwijst naar de bovenliggende klasse.

Laten we een voorbeeld bekijken waarin we toegang nodig kunnen hebben tot de ouder methode. Stel dat we de volgende ouderklasse hebben:

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

Stel dat we in de afstammelingsklasse de methode van de ouder hebben overschreven:

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

Merk op dat in de overschreven methode, wanneer aan de voorwaarde is voldaan, feitelijk de code van de ouder methode wordt uitgevoerd. Dit resulteert in onnodige code-duplicatie.

We kunnen dit elimineren door de methode van de ouder aan te roepen. Laten we dit doen:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // methode van de ouder } else { throw new Error('student name error'); } } }

Gegeven de volgende 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 de klasse Employee, verbeter vereenvoudig de leeftijdssetter door gebruik te maken van de originele methode van de ouder.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren