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 auprototypeafin 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
classmot clé déclare une nouvelle classe. - A
classla 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