Avec l'aide de l'encapsulation, vous pouvez facilement lier le données ou une seule unité aux méthodes qui effectuent des opérations dessus. Il vous permet également de valider et de contrôler le flux de données dans une application JavaScript.
Cet article expliquera l'encapsulation en JavaScript à l'aide d'exemples appropriés. Alors, commençons!
Encapsulation en javascript
Encapsulation en javascript est une méthodologie utilisée pour Informations sur la cachette. Il est basé sur le concept que les propriétés d'objet ne doivent pas être exposées publiquement au monde extérieur. La mise en œuvre de l'encapsulation en JavaScript empêche l'accès aux variables en ajoutant des entités publiques à l'intérieur d'un objet, que les appelants peuvent utiliser pour obtenir des résultats spécifiques.
Exemple: implémentation de l'encapsulation en javascript
Tout d'abord, nous créerons un objet JavaScript nommé «étudiant" avoir un "nom" propriété:
var étudiant =À l'étape suivante, nous imprimerons la valeur initiale du «nom" propriété:
console.journal ("Le nom de l'élève est:" + Student.nom);Ensuite, nous modifierons le «étudiant.nom»Valeur de la propriété et utilisez à nouveau le«console.enregistrer()”Méthode pour l'afficher dans la console:
étudiant.name = "max";Sortir
Comme vous pouvez le voir, tout fonctionne parfaitement en fonction de la logique ajoutée. Cependant, un problème surviendra lorsqu'un utilisateur saisit une valeur entière pour le «étudiant.nom" propriété.
Exemple: validation des données avec des méthodes d'encapsulation en javascript
Une variable JavaScript peut contenir une valeur de tout type de données, donc pour résoudre le problème mentionné, nous devons limiter la gamme de caractères juridiques pour le "nom" valeur de la propriété. À cette fin, nous utiliserons un Expression regex "/ \ d + /"Cela gardera un contrôle sur"une ou plusieurs occurrences des caractères du chiffre (0-9)". Cette expression regex sera ajoutée dans une nouvelle méthode de setter, "nom de set»Qui effectue des tests supplémentaires:
var étudiant =Ensuite, nous ajouterons une méthode Getter "nom«Pour récupérer le«étudiant.nom" valeur de la propriété:
getName: function ()Maintenant, si la déclaration "expression.test (valeur)"Évalue être"vrai,«Ensuite, un message sera affiché sur la fenêtre de la console indiquant que«Le nom non valide est entré», Sinon le«valeur«L'argument adopté sera attribué au«nom" propriété:
Nous avons réussi à effectuer la validation en utilisant une expression regex dans la méthode du secteur, mais notre programme n'est pas entièrement encapsulé. C'est parce que le «nom«La propriété est déclarée globalement, ce qui permet à l'appelant d'accéder et de modifier sa valeur:
étudiant.nom = 34;La sortie ci-dessus montre que lorsque nous avons directement accédé, le «nom«Propriété du«étudiant«Objet, la validation ne se produit pas et«34»Est défini comme la valeur de la propriété. Cette action prouve que si la propriété d'un objet est disponible à l'échelle mondiale, elle peut être facilement accessible, ce qui risque la sécurité des données.
Encapsulation en javascript en utilisant la portée de la fonction
Plutôt que d'exposer les propriétés de l'objet; Nous devons le cacher à l'extérieur. Pour ce faire, vous pouvez utiliser le «var”Mot-clé pour définir une propriété privée et le joindre dans la portée d'une fonction.
Exemple: encapsulation en javascript en utilisant la portée de la fonction
Dans ce qui suit "newFunc () » définition, "X«Est une variable privée qui peut être accessible dans le corps de la fonction:
fonction newfunc ()L'exécution du code fourni montre une erreur car "X"Est défini dans le"newFunc ()»Et nous y accédons en termes de portée mondiale:
De même, l'ajout «nom«En tant que variable privée dans le«setter»La méthode restreindra son accès direct. Dans ce scénario, le «nom«La variable ne peut pas être utilisée en dehors du«setter”Portée de la méthode, ce qui signifie que le«gette«La méthode ne peut pas y accéder aussi.
En utilisant "Fermetures"Est le moyen le plus simple et le plus élégant de mettre en œuvre l'encapsulation en javascript.
Encapsulation en JavaScript en utilisant les fermetures
À l'intérieur d'une fonction parent, "Fermetures«Permettez à une fonction d'utiliser la variable locale d'une autre fonction.
Par exemple, nous avons une variable privée "nom", Qui peut être accessible par les deux méthodes"nom" et "nom de set"Dans la portée de la fonction. En conséquence, chaque fois que la fonction anonyme est invoquée, elle doit renvoyer l'objet intérieur et l'affecter à une variable extérieure.
Exemple: encapsulation en javascript en utilisant des fermetures
Dans cet exemple, lorsque nous invoquons le «setName ()" et "getName ()»Fonctions, cette action génère une nouvelle portée de fermeture d'invocation. La portée est ensuite préservée en renvoyant un pointeur au «étudiant" objet:
var étudiant = function ()La fonction donnée se terminant par «()"Indique que nous invoquons la fonction et attribuons la valeur renvoyée au"étudiant»Variable:
console.journal (étudiant.getName ());Dans ce cas, l'encapsulation est entièrement mise en œuvre en utilisant Fermetures, et les appelants ne peuvent pas accéder directement à la variable privée:
C'était tout au sujet des informations de base liées à Encapsulation dans Javascrip; Vous pouvez l'explorer davantage en fonction de nos exigences.
Conclusion
En utilisant Scopes de fonction et Fermetures, Encapsulation dans Javascrip peut être implémenté facilement. À l'aide de l'encapsulation, vous pouvez lier les données ou une seule unité aux méthodes qui effectuent des opérations dessus. Il vous permet également de valider et de contrôler le flux de données dans une application JavaScript. Cet article a expliqué l'encapsulation en javascript ainsi que des exemples appropriés.