Getters et Setters en classe JavaScript

Getters et Setters en classe JavaScript

Dans une classe JavaScript, les getters et les setters sont utilisés pour obtenir ou définir les valeurs des propriétés. "obtenir«Est le mot-clé utilisé pour définir un gette Méthode pour récupérer la valeur de la propriété, alors que «ensemble»Définit une méthode de setter pour modifier la valeur d'une propriété spécifique. Lorsque nous voulons accéder à une propriété de notre objet JavaScript, la valeur renvoyée par la méthode Getter est utilisée, et pour définir une valeur de propriété, la méthode du secteur est invoquée, puis nous passons la valeur en tant qu'argument que nous voulons définir.

Cet article discutera des getters et des setters en javascript. De plus, nous démontrerons également des exemples liés à l'utilisation de la définition de Getter et du secteur dans la classe JavaScript. Alors, commençons!

Getters et Setters en classe JavaScript

Dans l'exemple donné ci-dessous, nous créerons un «Employé”Classe ayant un constructeur. Le constructeur du «Employé"La classe initialisera l'employé"nom«À la chaîne passée comme argument:

Classidemployee
constructeur (nom)
ce.name = name;

Maintenant, nous allons créer un objet de classe d'employée nommé «employé" et ajouter "Jack"Comme son nom:

Soit Employee = New Employee ("Jack");

Après cela, nous pouvons accéder au «nom«Propriété du«employé”Objet de la manière suivante:

console.journal (employé.nom);

La sortie du programme ci-dessus est illustrée ci-dessous:

Parfois, vous ne voudrez peut-être pas accéder directement à une propriété. C'est là que la paire Getter et Setter viennent au jeu.

Exemple 1: Getters et Setters en classe JavaScript

Pour démontrer l'utilisation du Getter et du setter, premièrement, nous créerons un «Employé«Classe ayant un«nom" propriété:

Classidemployee
constructeur (nom)
ce.setName (name);

Dans la prochaine étape, nous définirons un «getName ()«Méthode qui renverra la valeur de l'employé»nom" propriété:

getName ()
Retour ce.nom;

Une autre méthode, que nous allons ajouter est «setName ()". La méthode setName () de notre classe d'employés a un «nouveau nom»Paramètre. Cette méthode supprimera tous les espaces blancs de la valeur du «nouveau nom" Et il lancera également une exception si vous n'avez entré aucun nom:

setName (newname)
newname = newname.garniture();
if (newname === ")
jeter un nom d'employé »;

ce.name = newname;

Comme nous l'avons appelé notre «setName ()«Méthode dans le constructeur, donc chaque fois que nous créerons un«Employé"Objet, le"nom”Passé car l'argument sera pris par la méthode setName (). Ensuite, le constructeur déplacera le flux de contrôle vers la méthode setName (), et il définira les valeurs transmises un argument comme «Employé”Nom de l'objet:

Soit Employé = nouvel employé («Jack Smith»);
console.journal (employé);

Vous pouvez également invoquer le créé "setName ()" et "getName ()»Méthodes de la manière suivante:

employé.SetName ('William Smith');
console.journal (employé.getName ());

Les lignes de code ci-dessus seront définies «William Smith«Comme le nom du«employé" objet. Puis le "getName ()«La méthode vous informera de la valeur de la propriété du nom de l'employé:

Dans l'exemple fourni, la méthode setName () et getName () fonctionne comme Getter et Setter .

Exemple 2: Getters et Setters en classe JavaScript

Pour définir les getters et les setters dans la classe JavaScript, ES6 propose également une syntaxe spécifique. Pour vous montrer comment l'utiliser, nous allons emménager dans notre classe d'employés:

Classidemployee
constructeur (nom)
ce.name = name;

Ensuite, nous définirons la méthode Getter en utilisant le mot-clé "obtenir”Qui sera suivi du nom de la méthode. Une autre chose que nous aimerions mentionner ici est que le «nom«Propriété de notre«Employé"La classe sera passée à"_nom«Pour éviter le conflit avec le Getter et le secteur:

getName ()
Retour ce._nom;

Pour définir une méthode de setter, vous devez ajouter le "setter”Mot-clé avant de spécifier le nom de la méthode:

set name (newname)
newname = newname.garniture();
if (newname === ")
Jetez «veuillez entrer un nom d'employé»;

ce._name = newname;

Lorsque vous attribuerez une valeur au «nom"Propriété de votre"Employé"Objet de classe, JavaScript invoquera la méthode du secteur"nom()»:

employé.name = 'Paul Max';

Ensuite, nous appellerons la méthode Out Getter en utilisant la syntaxe divisée ci-dessous:

Soit empname = employé.nom;

Maintenant, lorsque l'interprète JavaScript exécutera les lignes ci-dessus, il vérifiera là-bas «nom«Propriété dans le«Employé" classe. Il recherchera en outre toute méthode qui lie le «nom”Propriété si elle n'est pas trouvée. Dans notre cas, l'interprète accédera à la méthode Getter et après l'avoir exécuté, il renverra la valeur de «nom" propriété:

Dans le cas où, si vous n'avez pas défini de méthode de setter dans votre classe JavaScript, vous obtiendrez un type EERROR qui indiquera que vous ne pouvez pas définir la propriété "nom" de la "Employé"Objet, comme le"Employé”La classe n'a qu'une fonction Getter:

Employé de classe
constructeur (nom)
ce.name = name;

get name ()
Retour ce._nom;

// Aucune méthode de set

Soit Employee = nouvel employé ("Stephen Edward");
console.journal (employé.nom);

Ici, nous essaierons de changer le nom de notre «employé" objet; Cependant, nous n'avons ajouté aucune méthode de setter dans notre classe:

employé.name = 'Paul Smith';
console.journal (employé.nom);

Comme vous pouvez le voir, nous avons rencontré une erreur de type tout en essayant de définir la valeur de la propriété du nom:

Conclusion

À l'aide des mots clés GET et définis, vous pouvez facilement définir les méthodes Getter et Setter dans une classe JavaScript. La méthode Getter renvoie la valeur de la propriété, tandis que, dans la méthode du secteur, un argument est transmis à la méthode du secteur, qui attribue cette valeur spécifique à la propriété de l'objet de classe JavaScript. Cet article a discuté des getters et des setters en javascript. De plus, nous avons également démontré des exemples liés à la définition et à l'utilisation de Getter et du secteur dans la classe JavaScript.