JavaScript ne prend pas en charge les classes au sens traditionnel comme d'autres langages orientés objet tels que Java ou C . Cependant, il fournit un mécanisme unique pour définir des constructeurs d'objets à l'aide de prototypes.
Utilisation de prototypes :
Les objets JavaScript ont une propriété prototype qui peut être utilisée pour ajouter des méthodes et propriétés à toutes les instances de cet objet. Pour définir un constructeur à l'aide de prototypes, nous créons une fonction et l'attribuons au prototype de l'objet :
<code class="javascript">function Box(color) { // Constructor this.color = color; } Box.prototype.getColor = function() { return this.color; };</code>
Ce constructeur prend un argument de couleur et le stocke dans la propriété color de l'objet. Il ajoute également une méthode getColor au prototype, accessible par toutes les instances de l'objet Box.
Masquage des propriétés privées :
Bien que JavaScript n'ait pas de valeur true membres privés, nous pouvons utiliser une technique pour simuler des propriétés privées :
<code class="javascript">function Box(col) { var color = col; this.getColor = function() { return color; }; }</code>
Dans cet exemple, la variable color est déclarée comme variable locale au sein du constructeur. Il n’est pas accessible directement depuis l’extérieur du constructeur. Cependant, nous fournissons une méthode getColor qui renvoie la valeur de la variable color.
Utilisation :
Pour créer une instance de l'objet Box, nous utilisons le nouveau mot-clé suivi du nom du constructeur :
<code class="javascript">var blueBox = new Box("blue"); alert(blueBox.getColor()); // will alert blue var greenBox = new Box("green"); alert(greenBox.getColor()); // will alert green</code>
En utilisant des prototypes ou en simulant des propriétés privées, JavaScript nous permet de définir des constructeurs pour les objets et de simuler l'encapsulation dans une certaine mesure.
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!