Une classe JavaScript est un plan pour créer des objets. Une classe encapsule les données et les fonctions qui manipulent les données.
contrairement à D’autres langages de programmation tels que Java et C++, Les classes JavaScript sont du sucre syntaxique sur l’héritage prototypique. En d’autres termes, les classes ES6 ne sont que des fonctions spéciales.
Classes avant ES6 revisitées
avant ES6, JavaScript n’avait aucun concept de classes., Pour imiter une classe, on a souvent utilisé la fonction constructeur comme illustré dans l’exemple suivant:
Résultat:
Comment cela fonctionne.
tout d’abord, créez lePerson
en tant que fonction constructeur qui a un nom de propriété appeléname
. La fonction getName()
est affectée auprototype
afin qu’elle puisse être partagée par toutes les instances du typePerson
.
ensuite, créez une nouvelle instance du typePerson
en utilisant l’opérateurnew
., L’objet john
est donc une instance de Person
Et Object
par héritage prototypique.,
Les instructions suivantes utilisent la balise instanceof
opérateur pour vérifier si john
est une instance de la balise Person
et Object
type:
Code language: JavaScript (javascript)
ES6 déclaration de classe
ES6 a introduit une nouvelle syntaxe pour la déclaration d’une classe, comme indiqué dans cet exemple:
Code language: JavaScript (javascript)
Cette Person
de classe se comporte comme le Person
type dans l’exemple précédent. Cependant, au lieu d’utiliser une fonction constructeur, il utilise le mot-clé class
.,
Dans le Person
de classe, la balise constructor()
est l’endroit où vous pouvez initialiser les propriétés d’une instance. JavaScript appelle automatiquement la méthode constructor()
lorsque vous instanciez un objet de la classe.
L’exemple suivant crée un nouveau Person
objet, qui va automatiquement appeler le constructor()
de la Person
de classe:
Code language: JavaScript (javascript)
Le getName()
est appelée méthode de la balise Person
de classe., Comme une fonction constructeur, vous pouvez appeler les méthodes d’une classe en utilisant la syntaxe suivante:
Code language: CSS (css)
Par exemple:
Code language: JavaScript (javascript)
pour vérifier le fait que les classes sont des fonctions spéciales, vous pouvez utiliser l’opérateur typeof
pour div id= »3c742ef484″>
classe.
Code language: JavaScript (javascript)
Elle retourne function
comme prévu.,
l’objet john
est également une instance des types Person
Et Object
:
Code language: JavaScript (javascript)
par rapport au type personnalisé
malgré les similitudes entre une classe et un type personnalisé défini via une fonction constructeur, il existe des différences importantes.
Tout d’abord, les déclarations de classe ne sont pas hissées comme les déclarations de fonction.
Par exemple, si vous placez le code suivant au-dessus de la balise Person
déclaration de la classe article, vous obtiendrez un ReferenceError
.,
Code language: JavaScript (javascript)
Erreur:
Code language: JavaScript (javascript)
Deuxièmement, le code à l’intérieur d’une classe exécute automatiquement en mode strict. Et vous ne pouvez pas changer ce comportement.
Troisièmement, les méthodes de classe ne sont pas énumérables. Si vous utilisez une fonction constructeur, vous devez utiliser la méthodeObject.defineProperty()
pour rendre une propriété non énumérable.
Quatrièmement, appeler le constructeur de classe sans l’opérateurnew
entraînera une erreur comme indiqué dans l’exemple suivant.,
Code language: JavaScript (javascript)
Erreur:
Code language: JavaScript (javascript)
Résumé
- JavaScript
class
mot clé déclare une nouvelle classe. - A
class
la déclaration est du sucre syntaxique sur l’héritage prototypique avec des améliorations supplémentaires.
- ce tutoriel a Été utile ?
- Ouinon
Leave a Reply