Programmation orientée objet (deux)

Premièrement, l'héritage du constructeur

Procédure pour qu'un constructeur hérite d'un autre constructeur
1. Appelez le constructeur de la classe parent dans le constructeur de la
classe enfant 2. Laissez le prototype de la classe enfant pointer vers le prototype de la classe parent.
Exemple de code
Insérez la description de l'image ici
Cet exemple est que n hérite le constructeur m après a est Instancié un objet n, alors a a les attributs de m et n.
La deuxième façon d'écrire le
Insérez la description de l'image ici
code clé:

//第一种方法:
function n(){
    
    
    m.call(this) //继承m构造函数
    this.color="red"
}
//第二种方法:
function n(){
    
    
    this.base=m; //继承m构造函数的属性
    this.base() //继承m构造函数的属性
    this.color="red"
}
n.prototype = Object.create(m.prototype);
n.prototype.constructor=m
var a=new n()

Les deux méthodes ci-dessus sont que la sous-classe hérite complètement de la classe parente, parfois une seule méthode est héritée de
Insérez la description de l'image ici
sorte que n hérite uniquement de la méthode d'impression de m et n'hérite pas des autres attributs de m. Une
seule méthode hérite du code clé:

n.prototype.print=function(){
    
    
    m.prototype.print.call(this)    
}

Deux, héritage multiple

JavaScript ne fournit pas la fonction d'héritage multiple, mais cela peut être réalisé par d'autres méthodes. Les étapes spécifiques sont la
première étape, le constructeur C appelle le constructeur de classe parent A et le constructeur de classe parent B. La
deuxième partie, le prototype structure d'héritage du constructeur C Le prototype de la fonction A. La
troisième partie, la chaîne d'héritage du constructeur C plus la chaîne d'héritage du constructeur B. La
quatrième partie, le constructeur C spécifie que le constructeur est C lui-même.
Exemple de code
Insérez la description de l'image ici
3. Encapsulation du module
1. Méthode de mise en œuvre de base (sera exposé membre du module, et l'état d'attribut interne peut être modifié en externe)
Insérez la description de l'image ici
2. Encapsuler des variables privées: la façon de construire la fonction

  • Méthode 1 (violant le principe de séparation du constructeur de l'objet d'instance, et est très gourmande en mémoire)
    Insérez la description de l'image ici

  • Méthode deux (elle semble naturelle, mais ses variables privées peuvent être lues et écrites de l'extérieur)
    Insérez la description de l'image ici
    Méthode trois, encapsuler les variables privées: exécuter l'écriture de fonction
    immédiatement, exécuter l'écriture de fonction immédiatement et encapsuler les attributs et méthodes associés dans une portée pour obtenir la non-exposition Objectif des membres privés
    Insérez la description de l'image ici
    4. Mode d'élargissement du module
    Si un module est très volumineux et doit être divisé en plusieurs modules ou si un module doit hériter d'un autre module, ce mode doit être adopté à ce stade

var module1 = (function (mod){
    
    
 mod.m3 = function () {
    
    
  //...
 };
 return mod;
})(module1);

Je suppose que tu aimes

Origine blog.csdn.net/qq_40969782/article/details/115335773
conseillé
Classement