Maison >interface Web >js tutoriel >Explication détaillée de trois méthodes de définition de classes dans les compétences Javascript_javascript
Il y a près de 20 ans, lorsque Javascript naissait, ce n'était qu'un simple langage de script web. Si vous oubliez de renseigner votre nom d'utilisateur, un avertissement apparaîtra.
Aujourd’hui, il est devenu presque omnipotent, du front-end au back-end, avec toutes sortes d’utilisations incroyables. Les programmeurs l'utilisent pour réaliser des projets de plus en plus importants.
La complexité du code Javascript est également montée en flèche. Il est depuis longtemps courant qu’une seule page Web contienne 10 000 lignes de code Javascript. En 2010, un ingénieur a révélé que la longueur du code de Gmail était de 443 000 lignes !
Écrire et maintenir un code aussi complexe nécessite une stratégie modulaire. À l'heure actuelle, l'approche dominante dans l'industrie consiste à adopter une « programmation orientée objet ». Par conséquent, la façon d’implémenter la programmation orientée objet en Javascript est devenue un sujet brûlant.
Le problème est que la syntaxe Javascript ne prend pas en charge la « classe » (classe), ce qui rend les méthodes de programmation orientées objet traditionnelles incapables d'être utilisées directement. Les programmeurs ont fait de nombreuses recherches sur la façon de simuler des « classes » en Javascript. Cet article résume trois façons de définir des « classes » en Javascript, discute des caractéristiques de chaque méthode et se concentre sur la meilleure méthode à mes yeux.
==============================================
Trois façons de définir des classes en Javascript
En programmation orientée objet, une classe est un modèle pour un objet, qui définit les propriétés et méthodes communes au même groupe d'objets (également appelés « instances »).
Le langage Javascript ne prend pas en charge les « classes », mais vous pouvez utiliser certaines solutions de contournement pour simuler les « classes ».
1. Méthode constructeur
C'est une méthode classique et une méthode qui doit être enseignée dans les manuels scolaires. Il utilise un constructeur pour simuler une "classe" et utilise le mot-clé this en interne pour faire référence à l'objet instance.
Les attributs et méthodes d'une classe peuvent également être définis sur l'objet prototype du constructeur.
2. Méthode Object.create()
Afin de résoudre les défauts de la « méthode constructeur » et de générer des objets plus facilement, la cinquième édition d'ECMAScript, la norme internationale pour Javascript (la troisième édition est actuellement populaire), propose une nouvelle méthode Object.create() .
Avec cette méthode, une « classe » est un objet et non une fonction.
3. Méthode du minimalisme
Le programmeur néerlandais Gabor de Mooij a proposé une nouvelle méthode meilleure que Object.create(), qu'il a appelée « l'approche minimaliste ». C'est aussi la méthode que je recommande.
3.1 Emballage
Cette méthode n'utilise pas ceci ni prototype, et le code est très simple à déployer. C'est probablement pourquoi on l'appelle la "méthode minimaliste".
Tout d'abord, il utilise également un objet pour simuler une "classe". Dans cette classe, définissez un constructeur createNew() pour générer des instances.
Ensuite, dans createNew(), définissez un objet instance et utilisez cet objet instance comme valeur de retour.
Lors de son utilisation, appelez la méthode createNew() pour obtenir l'objet instance.
L'avantage de cette méthode est qu'elle est facile à comprendre, qu'elle a une structure claire et élégante et qu'elle est conforme à la construction traditionnelle de « programmation orientée objet », de sorte que les fonctionnalités suivantes peuvent être facilement déployées.
3.2 Héritage
Laissez une classe hériter d'une autre classe, ce qui est très pratique à implémenter. Appelez simplement la méthode createNew() de ce dernier dans la méthode createNew() du premier.
Définissez d’abord une classe Animal.
Ensuite, dans la méthode createNew() de Cat, appelez la méthode createNew() d'Animal.
3.3 Propriétés privées et méthodes privées
Dans la méthode createNew(), toutes les méthodes et propriétés qui ne sont pas définies sur l'objet cat sont privées.
3.4 Partage de données
Parfois, nous avons besoin que tous les objets d'instance puissent lire et écrire les mêmes données internes. Pour le moment, encapsulez simplement les données internes à l’intérieur de l’objet de classe et à l’extérieur de la méthode createNew().
Ensuite, générez deux objets instances :
(Fin)