Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist Polymorphismus in der Javascript-Sprache?

小云云
Freigeben: 2018-01-29 13:45:56
Original
2392 Leute haben es durchsucht

Die Java-Sprache ist eine statisch typisierte Sprache. Aufgrund der strengen Typprüfung beim Kompilieren des Codes können Variablen keine Werte unterschiedlichen Typs zugewiesen werden. Diese Typprüfung macht den Code jedoch starr. Der Effekt von Polymorphismus kann Durch Vererbung (Implementierungsvererbung und Schnittstellenvererbung) kann Polymorphismus durch Aufwärtstransformation erreicht werden.

Die eigentliche Bedeutung von Polymorphismus besteht darin, dass dieselbe Operation, wenn sie auf verschiedene Objekte wirkt, zu unterschiedlichen Interpretationen und unterschiedlichen Ausführungsergebnissen führen kann. Der variable Typ von JavaScript ist zur Laufzeit variabel, was bedeutet, dass der Polymorphismus von JavaScript-Objekten inhärent ist.

Das folgende Bild erklärt es:

Der Meister gibt dem Huhn und der Ente gleichzeitig den Befehl „kreischen“. Das Huhn und die Ente kreischen gleichzeitig, aber Ihr Der Schrei ist anders.
Was ist Polymorphismus in der Javascript-Sprache?

Wir verwenden Code, um dieses Beispiel zu demonstrieren:

Im herkömmlichen Code sind wir es gewohnt, „if else“ zu verwenden, um hartcodierten Code zu stapeln. Wenn dieses Objekt jedoch aufrechterhalten wird, ist es immer gefährlich, den Code zu ändern. Je mehr Stellen Sie ändern, desto größer ist die Wahrscheinlichkeit von Programmfehlern Wenn sonst Es wird zu einer riesigen Funktion gestapelt, die der Wartung nicht förderlich ist.

var makeSound = function(animal) {
     if (animal instanceof Dog) {
        console.log('wanwan');
     } else if(animal instanceof Cat) {
        console.log('miaomiao');
     }
}

var Dog = function() {}
var Cat = function() {}
makeSound(new Dog());
makeSound(new Cat());
Nach dem Login kopieren

Der geänderte Code lautet wie folgt:

 var makeSound = function(animal) {
     animal.sound();
}
var Dog = function() {}
Dog.prototype.sound = function(){
   console.log('wanwan');
}

var Cat = function() {}
Cat.prototype.sound = function() {
   console.log('miaomiao');
}
makeSound(new Dog());
makeSound(new Cat());
Nach dem Login kopieren

Wie kann man verstehen, dass das Objekt, wenn es nicht auf eine Anfrage antworten kann, die Anfrage an den Prototyp seines Konstruktors delegiert? Dies ist das Prinzip der prototypischen Vererbung. Hier ist ein Code:

var obj = {name:'lin'};

var A = function() {};

A.prototype = obj;

var a = new A();
console.log(a.name);

Erklärung: Alle Attribute des Objekts durchlaufen a, Das Namensattribut wurde nicht gefunden
Die Anforderung, das Namensattribut zu finden, wird an den Prototyp des Konstruktors von Objekt a delegiert, der von a._proto_ aufgezeichnet wird und auf A.prototype,
und A verweist. Der Prototyp ist auf das Objekt obj festgelegt.
Suchen Sie das Namensattribut im Objekt obj und geben Sie es zurück.

Verwandte Empfehlungen:

Wie lerne ich die JavaScript-Sprache? Was sind die wichtigen und schwierigen Punkte beim Lernen?

Hinweise zur JavaScript-Sprachstruktur (1)_Grundkenntnisse

Detaillierte Erläuterung der grundlegenden grammatikalischen Anforderungen der JavaScript-Sprache_Grundkenntnisse


Das obige ist der detaillierte Inhalt vonWas ist Polymorphismus in der Javascript-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!