Was ist Javascript Uber?

藏色散人
藏色散人Original
2021-11-01 15:31:481637Durchsuche

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.

Was ist Javascript Uber?

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!

Stellungnahme:
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