⊗jsOpIhCOM 32 of 60 menu

Anropa en överlagrad metod i OOP i JavaScript

Vid överlagring förlorar avkomman åtkomst till den överlagrade metoden i föräldern. Men det är fortfarande möjligt att komma åt den. Detta görs med hjälp av nyckelordet super, som pekar på förälderklassen.

Låt oss titta på ett exempel när vi kan behöva åtkomst till föräldermetoden. Låt oss säga att vi har följande förälderklass:

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

Låt oss säga att vi i avkommaklassen har överlagrat förälderns metod:

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

Man kan lägga märke till att i den överlagrade metoden, när villkoret uppfylls, exekveras i praktiken koden från föräldermetoden. Detta resulterar i onödig kodduplicering.

Vi kan bli av med den genom att anropa föräldermetoden. Låt oss göra det:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // förälderns metod } else { throw new Error('student name error'); } } }

Följande kod ges:

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

I klassen Employee ska du förenkla settern för ålder genom att använda föräderns ursprungliga metod.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa