⊗jsOpIhCOM 32 of 60 menu

Ülekatstud meetodi kutsumine OOP-s JavaScriptis

Ülekirjutamisel kaotab lapsklass juurdepääsu ülekatstud vanema meetodile. Siiski on sellele võimalik juurde pääseda. Seda tehakse klausliga super, mis viitab vanemklassile.

Vaatame näidet, mil võib olla vajalik juurdepääs vanema meetodile. Olgu meil järgmine vanemklass:

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

Oletame, et me lapseklassis kirjutasime vanema meetodi üle:

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

Võib märgata, et ülekatstud meetodis, kui tingimus on täidetud, tehakse tegelikult vanema meetodi kood. Tekib tarbetu koodi dubleerimine.

Sellest võib lahti saada, kui kutsuda vanema meetodit. Teeme selle:

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

Antud on järgmine kood:

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

Klassis Employee parandage ja lihtsustage vanuse määrajat, kasutades originaalset vanema meetodit.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu