Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist Javascript Uber?
javascript uber ist eine Methode, die im frühen Javascript verwendet wurde, um eine bestimmte Methode die übergeordnete Klasse aufrufen zu lassen. Die uber-Methode ähnelt Javas super.
Die Betriebsumgebung dieses Artikels: Windows 7-System, JavaScript-Version 1.8.5, DELL G3-Computer.
Was ist Javascript uber?
Im frühen JavaScript ähnelt die uber-Methode der super von Java, die es einer Methode ermöglicht, die Methode der übergeordneten Klasse aufzurufen. Douglas Crockford verwendete das deutsche „über“, was so viel wie „super“ bedeutet, um Konflikte mit reservierten Wörtern zu vermeiden.
Crockford sagte jedoch auch, dass die Idee von Super im klassischen Designmuster sehr wichtig sei, in den Prototyp- und Funktionsdesignmustern von JavaScript jedoch unnötig zu sein scheint. Klassische Vererbung in JavaScript Klassische objektorientierte Sprachen verfügen im Allgemeinen über eine spezielle Syntax für den Zugriff auf die übergeordnete Klasse (Superklasse), sodass die Methoden der Unterklasse die Methoden der übergeordneten Klasse sowie die Methoden der Unterklasse und der übergeordneten Klasse verwenden können Klasse haben den gleichen Namen. In modernem JavaScript gibt es keine solche spezielle Syntax. Uber kann diese Funktion implementieren, sie ist jedoch umständlicher. Schauen Sie sich das folgende Beispiel an:
// inheritance helper function extend(Child, Parent) { var F = function () {}; F.prototype = Parent.prototype; Child.prototype = new F(); Child.prototype.constructor = Child; Child.uber = Parent.prototype; } // define -> augment function Shape() {} Shape.prototype.name = 'Shape'; Shape.prototype.toString = function () { return this.constructor.uber ? this.constructor.uber.toString() + ', ' + this.name : this.name; }; // define -> inherit -> augment function TwoDShape() {} extend(TwoDShape, Shape); TwoDShape.prototype.name = '2D shape'; // define function Triangle(side, height) { this.side = side; this.height = height; } // inherit extend(Triangle, TwoDShape); // augment Triangle.prototype.name = 'Triangle'; Triangle.prototype.getArea = function () { return this.side * this.height / 2; };
Eingabe in der Konsole:
var my = new Triangle(5, 10); my.toString();
Ausgabe: „Form, 2D-Form, Dreieck“
Die abgeleitete Ebene ist: Form -> TwoDShape -> Dreieck
Die Erweiterungsfunktion wird erben Der Code ist gekapselt.
Die Rolle des temporären Konstruktors F(): Wenn sich die Attribute der Unterklasse ändern, werden die Attribute der übergeordneten Klasse nicht geändert.
uber-Attribut: zeigt auf den Prototyp der übergeordneten Klasse.
Überprüfen Sie in der toString()-Methode, ob der Prototyp der übergeordneten Klasse des Konstruktors existiert. Wenn er existiert, rufen Sie dessen toString()-Methode auf und realisieren Sie so den Aufruf der übergeordneten Klassenmethode in der Unterklasse.
Empfohlenes Lernen: „JavaScript-Grundlagen-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist Javascript Uber?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!