Maison > interface Web > js tutoriel > Comment pouvons-nous simuler des méthodes privées en JavaScript pour une encapsulation améliorée ?

Comment pouvons-nous simuler des méthodes privées en JavaScript pour une encapsulation améliorée ?

Linda Hamilton
Libérer: 2024-11-03 15:26:02
original
258 Les gens l'ont consulté

How can we simulate private methods in JavaScript for enhanced encapsulation?

Rapprocher les méthodes publiques et privées en JavaScript

Alors que les méthodes publiques fournissent un accès externe aux fonctionnalités de la classe, les méthodes privées offrent des opérations isolées au sein de la classe. JavaScript ne prend pas en charge nativement les méthodes privées, mais des approches innovantes peuvent imiter ce concept.

Considérez le scénario suivant :

<code class="javascript">function Restaurant() {}

Restaurant.prototype.buy_food = function(){
   // something here
}

Restaurant.prototype.use_restroom = function(){
   // something here
}</code>
Copier après la connexion

Dans cet exemple, buy_food et use_restroom sont des méthodes publiques accessibles depuis l'extérieur. la classe. Comment pouvons-nous introduire une méthode privée que seules ces méthodes publiques peuvent appeler ?

Imiter les méthodes privées avec des fonctions locales

JavaScript manque de véritables méthodes privées, mais il nous permet de créer des fonctions locales au sein des constructeurs de classe qui ne sont pas accessibles de l’extérieur. Voici comment :

<code class="javascript">function Restaurant() {
    var myPrivateVar;

    var private_stuff = function() {  // Only visible inside Restaurant()
        myPrivateVar = "I can set this here!";
    }

    this.use_restroom = function() {  // use_restroom is visible to all
        private_stuff();
    }

    this.buy_food = function() {   // buy_food is visible to all
        private_stuff();
    }
}</code>
Copier après la connexion

Dans cet exemple, private_stuff est une fonction locale au sein du constructeur Restaurant. Il ne fait pas partie du prototype et n'est accessible que par les méthodes use_restroom et buy_food.

Cette approche maintient la séparation souhaitée entre les méthodes publiques et « privées » tout en permettant à ces dernières de fonctionner de manière transparente au sein de la classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal