Maison > Article > interface Web > Comment pouvez-vous implémenter des méthodes privées en 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>
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>
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!