Maison > interface Web > js tutoriel > Analyse de l'utilisation de l'héritage du constructeur qui peut être utilisée dans les compétences js package_javascript

Analyse de l'utilisation de l'héritage du constructeur qui peut être utilisée dans les compétences js package_javascript

WBOY
Libérer: 2016-05-16 16:17:33
original
1107 Les gens l'ont consulté

Les exemples de cet article décrivent l'utilisation de l'héritage de constructeur qui peut être utilisé dans l'encapsulation js. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Jetons d'abord un coup d'oeil au code suivant

Méthodes utilisées par la bibliothèque (YUI) :

Copier le code Le code est le suivant :
function extend(Enfant, Parent) {

 var F = fonction(){};
  F.prototype = Parent.prototype;
  Child.prototype = new F();
​Child.prototype.constructor = Enfant;
  Enfant.uber = Parent.prototype;
>

Il existe également une méthode d'héritage de copie, attribut copie :

Cette méthode est différente de la précédente. L'extension du prototype de l'enfant étant terminée, 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 légèrement moins efficace. Car ce qui se fait ici, c'est copier les prototypes des sous-objets un par un. Plutôt qu'une simple requête en chaîne de prototype.

Cette méthode n'est applicable qu'aux objets contenant uniquement des types de données de base. Tous les types d'objets, y compris les fonctions et les tableaux, ne sont pas copiables et prennent uniquement en charge le passage de références.

Copier le code Le code est le suivant :
fonction extend2(Enfant, Parent) {
  var p = Parent.prototype;
  var c = Enfant.prototype;
  pour (var i dans p) {
   c[i] = p[i];
   }
  c.uber = p;
>

var Forme = fonction(){}
var TwoDShape = fonction(){}
Shape.prototype.name = 'forme';
Shape.prototype.toString = function(){
renvoie this.name;
>
extend2(TwoDShape,Forme);
var t = new TwoDShape();
t.nom
//-->"forme"
t.toString();
//-->"forme"
TwoDShape.prototype.name = 'TwoDShape';
t.nom
//-->"Forme 2D"
t.toString();
//-->"Forme 2D"

TwoDShape.prototype.toString === Shape.prototype.toString
//-->vrai
TwoDShape.prototype.name === Shape.prototype.name
//-->faux

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal