⊗jsOpIhCOM 32 of 60 menu

Pozivanje redefinisanog metoda u OOP-u u JavaScript-u

Prilikom redefinisanja, naslednik gubi pristup redefinisanom metodu roditelja. Međutim, i dalje je moguće doći do njega. Ovo se radi pomoću ključne reči super, koja ukazuje na roditeljsku klasu.

Hajde da pogledamo primer, kada nam može zatrebati pristup roditeljskom metodu. Neka postoji sledeća roditeljska klasa:

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

Neka smo u klasi-nasledniku redefinisali metod roditelja:

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

Može se primetiti da se u redefinisanom metodu pri ispunjenju uslova zapravo izvršava kod roditeljskog metoda. Dolazi do nepotrebnog dupliranja koda.

Od toga se može osloboditi, ako se pozove metod roditelja. Hajde da to uradimo:

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

Dat je sledeći kod:

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

U klasi Employee ispravite pojednostavite setter za godine, koristeći originalni metod roditelja.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij