44 votes

Pourquoi utiliser des getters et setters en JavaScript?

Je sais comment getter et setter fonctionnent en JavaScript. Ce que je ne comprends pas, c'est pourquoi nous en avons besoin alors que nous pouvons obtenir le même résultat en utilisant des fonctions normales? Considérez le code suivant:

 var person = {
    firstName: 'Jimmy',
    lastName: 'Smith',
    get fullName() {
        return this.firstName + ' ' + this.lastName;
    }
}

console.log(person.fullName);    // Jimmy Smith
 

On peut facilement remplacer getter par une fonction:

 var person = {
    firstName: 'Jimmy',
    lastName: 'Smith',
    fullName: function() {
        return this.firstName + ' ' + this.lastName;
    }
}

console.log(person.fullName());    // Jimmy Smith
 

Je ne vois pas l'intérêt d'écrire getter et setter.

28voto

Bulent Vural Points 1711

Une différence entre l'utilisation d'un getter ou un setter et à l'aide d'une fonction de base est que les getters/setters sont automatiquement appelée lors de l'affectation. Ainsi, il semble juste comme une propriété classique mais dans les coulisses, vous pouvez avoir plus de logique (ou contrôles) à exécuter juste avant ou après la cession.

Donc, si vous décidez d'ajouter ce genre de logique supplémentaire pour l'une des propriétés de l'objet qui est déjà référencé, vous pouvez le convertir en getter/setter de style, sans modifier le reste du code qui a accès à cette propriété.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X