Maison >interface Web >js tutoriel >La relation entre l'héritage de prototype de classe et de prototype js dans ES6
ES6 introduit la classe de mots-clés afin de réduire davantage l'écriture de code et de simplifier la logique du code. Mais l'implémentation de la classe est également basée sur un prototype, avec une couche de sucre syntaxique. La plupart de ses fonctions peuvent être réalisées par ES5. La nouvelle méthode d'écriture de classe ne fait que rendre la méthode d'écriture du prototype d'objet plus claire et plus proche de la programmation orientée objet. Juste de la grammaire.
class Person { constructor(name) { this.name=name||"Default"; } toString(){ return 'Name:'+this.name; } } var p1=new Person(); console.log(p1.name); class Boy extends Person{ constructor(name){ super(name); this.gende='Boy'; } toString(){ return super.toString()+" - Gende:"+this.gende; } } var b1=new Boy('hello'); console.log(b1); console.log(b1.toString());
L'héritage ES5, c'est-à-dire le prototype
consiste essentiellement à créer d'abord l'objet instance de la sous-classe this
puis à ajouter les méthodes de la classe parent à this ( Parent.apply(this))
L'héritage ES6, c'est-à-dire que la classe
crée essentiellement l'objet instance this de la classe parent (super doit être appelé en premier)
puis utilise le constructeur de la sous-classe pour modifier cela
Leurs mécanismes d'implémentation sont différents
Comme ES6 et ES5, toutes les instances d'une classe partagent un objet prototype
Pour es6, il faut quand même lire la documentation.
Recommandations associées :
Explication détaillée du mot-clé class dans ES6
Exemples d'utilisation des classes get et set class dans ES6 javascript
Explication détaillée de l'utilisation de l'attribut Prototype de js
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!