⊗jsOpIhCOM 32 of 60 menu

Chiamare un metodo sovrascritto in OOP in JavaScript

Quando si sovrascrive un metodo, la classe figlia perde l'accesso al metodo sovrascritto della classe genitore. Tuttavia, è comunque possibile accedervi. Questo viene fatto utilizzando la parola chiave super, che fa riferimento alla classe genitore.

Vediamo un esempio in cui potremmo aver bisogno di accedere al metodo della classe genitore. Supponiamo di avere la seguente classe genitore:

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

Supponiamo di aver sovrascritto il metodo della classe genitore nella classe figlia:

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

Si può notare che nel metodo sovrascritto, quando la condizione è soddisfatta, viene essenzialmente eseguito il codice del metodo della classe genitore. Risulta in una duplicazione non necessaria del codice.

Possiamo eliminarla chiamando il metodo della classe genitore. Facciamolo:

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

Considera il seguente codice:

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

Nella classe Employee correggi e semplifica il setter dell'età, utilizzando il metodo originale della classe genitore.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta