Table des matières
Méthodes privées JavaScript
Maison interface Web js tutoriel Comment créer des méthodes privées en JavaScript et quelles sont les limites de cette approche ?

Comment créer des méthodes privées en JavaScript et quelles sont les limites de cette approche ?

Nov 03, 2024 am 08:55 AM

How can you create private methods in JavaScript, and what are the limitations of this approach?

Méthodes privées JavaScript

JavaScript, un langage de programmation largement utilisé, offre un large éventail de fonctionnalités permettant aux développeurs de créer des applications complexes et efficaces. Un aspect qui surgit souvent dans la programmation orientée objet est le besoin de méthodes privées, qui sont des méthodes accessibles uniquement dans la classe dans laquelle elles sont définies.

En JavaScript, les classes traditionnelles ne sont pas prises en charge, mais JavaScript les objets peuvent être utilisés pour obtenir des fonctionnalités similaires. Pour créer des méthodes publiques en JavaScript, vous les définirez généralement comme propriétés du prototype de la fonction constructeur. Par exemple, considérons l'exemple ci-dessous :

1

2

3

4

5

6

7

8

9

<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

Comme vous pouvez le voir, ces méthodes sont accessibles et appelées normalement en utilisant restaurant.buy_food() et restaurant.use_restroom(), où restaurant est une instance de la classe Restaurant.

Maintenant, concentrons-nous sur le défi de la création de méthodes privées en JavaScript. Les méthodes privées sont des méthodes qui ne doivent être accessibles qu’au sein de la même classe. En d'autres termes, nous voulons définir une méthode appelée private_stuff qui peut être appelée à la fois par buy_food et use_restroom, mais pas par les utilisateurs de la classe.

Malheureusement, déclarer simplement une méthode comme propriété du prototype ne suffira pas. Je ne le rends pas privé. JavaScript ne prend pas en charge la véritable encapsulation, ce qui signifie que toute propriété d'un objet, y compris les méthodes, est accessible de l'extérieur.

Cependant, il existe une solution de contournement qui peut effectivement obtenir un résultat similaire. Les fermetures de fonctions JavaScript vous permettent de créer une portée privée au sein d'une fonction, rendant les variables déclarées dans cette portée inaccessibles en dehors de cette fonction.

Pour créer une méthode privée en utilisant cette approche, vous devez déclarer la méthode dans une fonction qui est appelé par la fonction constructeur. Par exemple :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<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 ce cas, la fonction private_stuff est déclarée dans la fonction constructeur Restaurant, ce qui signifie qu'elle n'est accessible que dans la portée de ce constructeur. Désormais, buy_food et use_restroom peuvent appeler private_stuff car ils y ont accès via leur portée partagée au sein du constructeur. Cependant, les utilisateurs externes de la classe ne peuvent pas appeler private_stuff car elle n'est pas exposée dans le prototype.

Il est important de noter que cette approche a une limitation : les méthodes privées définies dans une fermeture ne peuvent pas faire partie du prototype de la classe. Par conséquent, ils ne sont pas accessibles à l’aide du mot-clé this au sein de la classe. Cette limitation est inévitable en raison du fonctionnement des fermetures JavaScript.

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!

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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé Tutoriel de configuration de l'API de recherche Google personnalisé Mar 04, 2025 am 01:06 AM

Tutoriel de configuration de l'API de recherche Google personnalisé

Exemple Couleurs Fichier JSON Exemple Couleurs Fichier JSON Mar 03, 2025 am 12:35 AM

Exemple Couleurs Fichier JSON

8 Superbes plugins de mise en page JQuery Page 8 Superbes plugins de mise en page JQuery Page Mar 06, 2025 am 12:48 AM

8 Superbes plugins de mise en page JQuery Page

10 Highlighters de syntaxe jQuery 10 Highlighters de syntaxe jQuery Mar 02, 2025 am 12:32 AM

10 Highlighters de syntaxe jQuery

Créez vos propres applications Web Ajax Créez vos propres applications Web Ajax Mar 09, 2025 am 12:11 AM

Créez vos propres applications Web Ajax

Qu'est-ce que & # x27; ceci & # x27; en javascript? Qu'est-ce que & # x27; ceci & # x27; en javascript? Mar 04, 2025 am 01:15 AM

Qu'est-ce que & # x27; ceci & # x27; en javascript?

10 tutoriels JavaScript & jQuery MVC 10 tutoriels JavaScript & jQuery MVC Mar 02, 2025 am 01:16 AM

10 tutoriels JavaScript & jQuery MVC

See all articles