Heim > Artikel > Web-Frontend > Was ist Polymorphismus in der Javascript-Sprache?
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.
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());
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());
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
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!