Heim > Web-Frontend > js-Tutorial > Hauptteil

Empfehlen Sie die beste Möglichkeit zur Implementierung der Vererbung in JavaScript

PHPz
Freigeben: 2018-09-30 13:29:34
Original
1186 Leute haben es durchsucht

In diesem Kapitel wird die beste Möglichkeit vorgestellt, die JavaScript-Vererbung mithilfe der praktischen Aufrufmethode in Kombination mit der Prototypkettenmethode zu implementieren. Sie ist sehr praktisch und Freunde in Not können sich darauf beziehen.

Der einfachste Weg, die JavaScript-Vererbung zu implementieren, ist die Call-Methode (oder Apply-Methode) und die Prototyp-Chain-Methode. Beide Methoden weisen jedoch Mängel auf und ihre Mischung ist eine gute Möglichkeit, die Vererbung zu implementieren. Das Folgende ist ein Beispiel:

function Animal(age){
    this.age = age;
}
Animal.prototype.sayAge = function(){
    window.alert("My age is "+this.age+"!");
};
function Dog(age,name){
    Animal.call(this,age);
    this.name = name;
}
Dog.prototype = new Animal();
Dog.prototype.sayName = function(){
    window.alert("I am a "+this.name+"!");
};
var dog = new Dog(15,"dog");
dog.sayName();
dog.sayAge();
Nach dem Login kopieren

Für die Klasse Animal gibt es ein Feldattribut „Alter“ und ein Funktionsattribut „sayAge“. Die Methode „sayAge“ ist prototypisch definiert. Die Dog-Klasse muss Animal erben und ihre Feldattribute enthalten neben dem Alter auch den Namen. Über Animal.call(this,age); kann Dog das Feldattribut age von Animal erben und initialisieren. Der erste Parameter der Aufrufmethode ist der This-Zeiger der geerbten Klasse und der zweite Parameter ist der Parameter des Konstruktors der Animal-Klasse. Tatsächlich kann die Vererbung nur durch die Aufrufmethode erreicht werden. Die einzige Voraussetzung besteht jedoch darin, dass die Funktionsattribute der übergeordneten Klasse im Konstruktor definiert werden müssen, was für die Definition der Funktionsattribute hier mit der Prototypmethode nicht geeignet ist ( Die Verwendung der Prototypenmethode zum Definieren von Funktionseigenschaften ist intuitiver als das Definieren innerhalb eines Konstruktors. Um die im Prototypmodus von Animal definierten Funktionsattribute zu erben, lautet die erforderliche Anweisung „Dog.prototype = new Animal();“. Die Funktion sayName() in der Klasse Dog ist ein eigenes Funktionsattribut.

Zusätzlich zu dieser klassischsten Art der Vererbungsimplementierung stehen derzeit einige kostenlose Bibliotheken zur Verfügung. Aber über alle Arten von Bibliotheken nachzudenken, ist überwältigend. Lasst uns sie studieren, wenn wir Zeit und Bedarf haben!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage