Prototypkettenvererbung
Kern: Verwenden Sie die Instanz der übergeordneten Klasse als Prototyp der Unterklasse
Eigenschaften:
1: Sehr reine Vererbungsbeziehung, die Instanz ist die Unterklasse Eine Instanz von ist auch eine Instanz der übergeordneten Klasse
2: Die übergeordnete Klasse fügt eine neue Prototypmethode hinzu, auf die die Unterklassen zugreifen können
Nachteile:
1: Wenn Sie hinzufügen möchten Attribute und Methoden müssen der Unterklasse hinzugefügt werden. Nach new Animal() kann keine Mehrfachvererbung realisiert werden
2: Beim Erstellen einer Unterklasseninstanz können keine Parameter an den Konstruktor der übergeordneten Klasse übergeben werden
function Animal(name){ this.name=name; this.sleep=function(){ console.log(this.name+"正在睡觉"); } } Animal.prototype.eat=function() { console.log(this.name + "正在吃"); } function Cat(){ } Cat.prototype=new Animal(); Cat.prototype.name="猫"; var cat=new Cat(); console.log(cat.name); console.log(cat.sleep()); console.log(cat.eat()); console.log(cat instanceof Cat);//true console.log(cat instanceof Animal);//true
Konstruktionsvererbung
Kern: Verwendung Der Konstruktor der übergeordneten Klasse erweitert die Instanz der untergeordneten Klasse, was dem Kopieren der Instanzattribute der übergeordneten Klasse in die untergeordnete Klasse entspricht (es wird kein Prototyp verwendet)
Funktionen:
1: Beim Erstellen einer Unterklasseninstanz können Sie Parameter an die übergeordnete Klasse übergeben
2: Mehrfachvererbung kann erreicht werden
Nachteile:
1: Die Instanz ist keine Instanz der übergeordneten Klasse. aber eine Instanz der Unterklasse
2: Nur die Attribute und Methoden der übergeordneten Klasse können geerbt werden, und Prototypattribute können nicht vererbt werden. Und Methode
3: Die Wiederverwendung von Funktionen kann nicht erreicht werden Die Instanzfunktion der übergeordneten Klasse, die sich auf die Leistung auswirkt ist eine neue Unterklasse () oder Unterklasse (), das zurückgegebene Objekt hat den gleichen Effekt
Nachteile:
unterstützen keine Mehrfachvererbung kombinierte Vererbung
function Animal(name){ this.name=name; this.sleep=function(){ console.log(this.name+"正在睡觉"); } } Animal.prototype.eat=function() { console.log(this.name + "正在吃"); } function Cat(name){ Animal.call(this); this.name=name; } var cat=new Cat("猫"); console.log(cat.name); console.log(cat.sleep()); // console.log(cat.eat());不能继承原型化方法 console.log(cat instanceof Cat);//true console.log(cat instanceof Animal);//false
Ich glaube, Sie haben die Methode danach gemeistert Lesen Sie den Fall in diesem Artikel. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So binden Sie die Richtungstasten, um die Div-Bewegung zu steuern
Das obige ist der detaillierte Inhalt vonZusammenfassung der Vererbungsmethoden in JS (mit Groß-/Kleinschreibung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!