⊗jsOpIhCOM 32 of 60 menu

Pārrakstītas metodes izsaukšana OOP JavaScript

Pārrakstot metodi, bērns zaudē piekļuvi pārrakstītajai vecāka metodei. Tomēr, piekļūt tai joprojām ir iespējams. To var izdarīt, izmantojot atslēgvārdu super, kas norāda uz vecāka klasi.

Apskatīsim piemēru, kad mums varētu būt nepieciešama piekļuve vecāka metodei. Pieņemsim, ka mums ir šāda vecāka klase:

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

Pieņemsim, ka mēs bērna klasē esam pārrakstījuši vecāka metodi:

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

Var ievērot, ka pārrakstītajā metodē, ja nosacījums ir izpildīts, faktiski tiek izpildīts vecāka metodes kods. Rezultātā rodas nevēlams koda dublēšanās.

No tā var atbrīvoties, ja izsauc vecāka metodi. Darīsim tā:

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

Dots šāds kods:

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

Klasē Employee izlabojiet vienkāršojiet vecuma setteri, izmantojot oriģinālo vecāka metodi.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt