Cet article décrit l'utilisation de l'héritage du constructeur qui peut être utilisé par l'encapsulation JS. Partagez-le pour votre référence. Les détails sont les suivants:
Jetons un coup d'œil au code suivant
Méthodes utilisées dans la bibliothèque (yui):
Copiez le code comme suit: Fonction Extend (enfant, parent) {
var f = function () {};
F.prototype = parent.prototype;
Child.prototype = new f ();
Child.prototype.constructor = enfant;
Child.uber = parent.prototype;
}
Il existe également une méthode d'héritage de copie, copie d'attribut:
Cette méthode est différente d'avant. Étant donné que le prototype enfant a été étendu, il n'est pas nécessaire de réinitialiser la propriété child.prototype.constructor car elle ne sera plus écrasée.
Par rapport à la méthode précédente, cette méthode est évidemment meilleure en efficacité. Parce que ce qui est exécuté ici est une copie du prototype de sous-objet un par un. Plutôt qu'une simple requête de chaîne prototype.
Cette méthode ne s'applique qu'aux objets qui ne contiennent que des types de données de base. Tous les types d'objets, y compris les fonctions et les tableaux, ne sont pas reproduits. Ils ne soutiennent que le passage de référence.
Copiez le code comme suit: Fonction Extend2 (enfant, parent) {
var p = parent.prototype;
var c = child.prototype;
pour (var i dans p) {
c [i] = p [i];
}
c.uber = p;
}
var forme = fonction () {}
var twodshape = function () {}
Shape.prototype.name = 'forme';
Shape.prototype.toString = function () {
Renvoie ce.name;
}
Extend2 (twodshape, forme);
var t = new twoDShape ();
t. name
// -> "forme"
t.toString ();
// -> "forme"
Twodshape.prototype.name = 'twodshape';
t. name
// -> "Forme 2D"
t.toString ();
// -> "Forme 2D"
Twodshape.prototype.toString === forme.prototype.tostring
// -> vrai
Twodshape.prototype.name === forme.prototype.name
// -> faux
J'espère que cet article sera utile à la programmation JavaScript de tous.