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

Comment pouvez-vous implémenter des méthodes privées en JavaScript ?

Susan Sarandon
Libérer: 2024-11-03 14:36:03
original
904 Les gens l'ont consulté

How Can You Implement Private Methods in JavaScript?

Implémentation de méthodes privées en JavaScript

Bien que JavaScript ne prenne pas en charge nativement le concept de méthodes privées dans les classes, il existe une solution de contournement qui peut permettre d'obtenir un effet similaire. En évitant de définir des méthodes privées dans le prototype de la classe, vous pouvez créer des méthodes accessibles uniquement dans les instances de la classe.

Considérez l'extrait de code suivant :

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

    // Private method
    var private_stuff = function() {
        myPrivateVar = "I can set this here!";
    }

    // Public methods
    this.use_restroom = function() {
        private_stuff();
    }

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

Dans cet exemple, le La fonction private_stuff est définie comme une méthode privée au sein de la fonction Restaurant elle-même. Cela signifie qu'il n'est accessible que dans les instances de Restaurant et ne peut pas être appelé en externe.

Les méthodes publiques use_restroom et buy_food peuvent toutes deux accéder à la méthode privée private_stuff, leur permettant d'effectuer des actions spécifiques sans exposer les détails d'implémentation aux utilisateurs. de la classe.

<code class="javascript">// Create a new instance of Restaurant
var restaurant = new Restaurant();

// Call public methods
restaurant.use_restroom();
restaurant.buy_food();

// Attempting to call private method externally will fail
restaurant.private_stuff(); // Uncaught ReferenceError: private_stuff is not defined</code>
Copier après la connexion

En utilisant cette solution de contournement, vous pouvez créer efficacement des méthodes privées inaccessibles aux utilisateurs externes de votre classe tout en permettant aux méthodes internes d'interagir avec elles. Cependant, il est important de noter que cette méthode ne fournit pas une encapsulation complète car la méthode privée existe toujours dans la portée de la fonction, bien qu'avec une accessibilité limitée.

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