⊗jsOpBsGSA 18 of 60 menu

Avantages des accesseurs (getters) et mutateurs (setters) en POO en JavaScript

Dans la leçon précédente, nous avons créé un accesseur et un mutateur pour chaque propriété. La question peut se poser de savoir pourquoi de telles complexités sont nécessaires, puisqu'en fait, le même effet peut être atteint en rendant les propriétés publiques plutôt que privées.

Le fait est que les accesseurs et les mutateurs présentent un avantage : avant d'accéder à la propriété, il est possible d'effectuer certaines vérifications. Par exemple, dans notre cas, lors de l'assignation du prénom et du nom, nous pouvons vérifier que la nouvelle valeur n'est pas une chaîne vide :

class User { #name; #surn; setName(name) { if (name.length > 0) { this.#name = name; } else { throw new Error('name is incorrect'); } } setSurn(surn) { if (surn.length > 0) { this.#surn = surn; } else { throw new Error('surn is incorrect'); } } getName() { return this.#name; } getSurn() { return this.#surn; } }

Vérifions comment cela fonctionne. Commençons par créer un objet de la classe :

let user = new User;

Maintenant, essayons d'assigner une valeur correcte :

user.setName('john');

Et maintenant, essayons d'assigner une valeur incorrecte :

user.setName(''); // erreur

Dans la classe Employee, dans le mutateur de l'âge, implémentez une vérification pour que l'âge doit être compris entre 0 et 120.

Dans la classe Employee, dans l'accesseur du salaire, faites en sorte que lors de la lecture du salaire, un symbole dollar soit ajouté à la fin de sa valeur.

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