⊗jsOpIhCOM 32 of 60 menu

Appel d'une méthode surchargée en POO en JavaScript

Lors de la surcharge, l'enfant perd l'accès à la méthode surchargée du parent. Cependant, il est toujours possible d'y accéder. Cela se fait à l'aide du mot-clé super, qui fait référence à la classe parente.

Regardons un exemple où nous pourrions avoir besoin d'accéder à la méthode parente. Supposons que nous ayons la classe parente suivante :

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

Supposons que nous ayons surchargé la méthode du parent dans la classe enfant :

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

On peut remarquer que dans la méthode surchargée, lorsque la condition est remplie, le code de la méthode parente est essentiellement exécuté. Cela entraîne une duplication de code inutile.

On peut s'en débarrasser en appelant la méthode du parent. Faisons cela :

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // méthode du parent } else { throw new Error('student name error'); } } }

Voici le code suivant :

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

Dans la classe Employee, corrigez et simplifiez le mutateur d'âge en utilisant la méthode originale du parent.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser