⊗jsOpIhCOM 32 of 60 menu

Perrašyto metodo iškvietimas OOP JavaScripte

Perrašant metodą, išvestinė klasė praranda prieigą prie tėvinės klasės perrašyto metodo. Tačiau vis tiek galima gauti prieigą prie jo. Tai daroma naudojant raktinį žodį super, kuris nurodo į tėvinę klasę.

Pažiūrėkime pavyzdžiu, kada mums gali prireikti prieigos prie tėvinio metodo. Tarkime, turime šią tėvinę klasę:

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

Tarkime, mes išvestinėje klasėje perrašėme tėvinį metodą:

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

Galima pastebėti, kad perrašytame metode, kai sąlyga yra tenkinama, faktiškai vykdomas tėvinio metodo kodas. Pasirodo, nereikalingas kodo dubliavimas.

Galima jo atsikratyti, jei iškviestume tėvinį metodą. Padarykime tai:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // tėvinis metodas } else { throw new Error('studentų vardo klaida'); } } }

Pateiktas toks kodas:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('reikia amžiaus daugiau nei 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('reikia amžiaus daugiau nei 0'); } } else { throw new Error('reikia amžiaus mažiau nei 120'); } } }

Klasėje Employee pataisykite amžiaus setterį, supaprastindami jį naudodami originalų tėvinį metodą.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti