Maison > interface Web > js tutoriel > le corps du texte

Comment réaliser l'encapsulation avec des méthodes privées en JavaScript ?

Susan Sarandon
Libérer: 2024-11-03 08:09:29
original
488 Les gens l'ont consulté

How to Achieve Encapsulation with Private Methods in JavaScript?

Méthodes privées en JavaScript

Encapsuler des données et des méthodes au sein d'une classe est un principe fondamental de la programmation orientée objet. En JavaScript, cependant, définir des méthodes privées au sein d'une classe peut s'avérer difficile.

Création d'une méthode publique

Pour créer une méthode publique en JavaScript, nous utilisons généralement le prototype property :

<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

Les utilisateurs peuvent accéder à ces méthodes comme suit :

<code class="javascript">var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();</code>
Copier après la connexion

Définition de méthodes privées

Pour créer une méthode privée uniquement accessible aux autres méthodes au sein de la classe, on peut la définir en dehors du prototype :

<code class="javascript">function Restaurant() {
    var private_stuff = function() {  // Only visible inside Restaurant()
        // Do something
    };

    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

Limitations

Cette approche a un inconvénient : les méthodes privées ne peuvent pas être une partie du prototype. Cela signifie qu'elles ne sont pas accessibles directement depuis une instance de la classe :

<code class="javascript">var r = new Restaurant();
r.private_stuff(); // This will not work</code>
Copier après la connexion

Par conséquent, les méthodes privées ne peuvent être appelées que par des méthodes publiques au sein de la même classe. Bien que cela puisse fournir un certain niveau d'encapsulation, ce n'est pas aussi robuste que les véritables méthodes privées trouvées dans d'autres langages de programmation.

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