⊗jsOpIhCOM 32 of 60 menu

Pozivanje predefinisanog metoda u OOP-u u JavaScript-u

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

Pogledajmo na primeru 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-potomku redefinisali metod roditelja:

class Student extends User { setName(name) { if (name.length > 0) { this.name = name; } else { throw new Error('greška u imenu studenta'); } } }

Može se primetiti da u redefinisanom metodu prilikom ispunjenja uslova zapravo izvršava kod roditeljskog metoda. Ispostavlja se nepotrebno dupliranje koda.

Može se od toga 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('greška u imenu studenta'); } } }

Dat je sledeći kod:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('potrebna starost veća od 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('potrebna starost veća od 0'); } } else { throw new Error('potrebna starost manja od 120'); } } }

U klasi Employee ispravite pojednostavite seter za starost, koristeći originalni metod roditelja.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј