Dans les projets réels, nous utilisons généralement des constructeurs pour créer un objet, puis ajoutons des méthodes couramment utilisées à son objet prototype. Enfin, instanciez directement l'objet ou utilisez-le comme classe parent, déclarez un objet et héritez de la classe parent.
Il existe deux façons courantes d'hériter.
La copie de code est la suivante:
// classe premium
fonction de fonction (nom) {
this.name = name;
};
// sous-classe
fonction étudiante (sexe) {
Personne.Apply (ceci, arguments);
this.sex = sexe;
};
1. Prototype hérité:
La copie de code est la suivante:
Student.prototype = Person.prototype; Parce que Person.prototype.Contructor pointe vers la personne, l'affectation de l'objet est essentiellement une mission de référence, donc Student.prototype.Contructor pointe également à la personne
Student.prototype.Constructor = Student;
Utiliser l'objet prototype de la personne pour écraser l'objet prototype de l'élève; .
Regardez ce qui suit:
La copie de code est la suivante:
Student.prototype.add = function () {alert ("add")};
Personne.prototype.add (); // popt ajouter
2. Exemple d'héritage:
La copie de code est la suivante:
Student.prototype = new Person ();
2 Student.prototype.Constructor = Student;
Utilisez l'instance de la personne pour écraser l'objet Prototype de l'élève; Il ne se reflétera pas dans Person.prototype, c'est-à-dire que la sous-classe n'affectera pas la classe parent.
3. Utilisez des objets de contrôle pour combiner les avantages de 1 et 2 pour éliminer les inconvénients
La copie de code est la suivante:
var f = function () {};
F.prototype = personne.prototype;
Student.prototype = new f ();
Student.prototype.Constructor = Student;
F est un objet vide, avec seulement quelques méthodes prototypes ci-dessus, qui consomment moins de mémoire lors de l'instanciation, et isole également l'impact des sous-classes sur les classes parentales.