JavaScript unterstützt objektorientierte Entwicklung

Warum geht allen Variablen ein „this“ voraus?

Das Schlüsselwort this gibt an, dass es sich um eine Instanzvariable des Objekts handelt und man mittels MyFigure.centerX von außerhalb des Objekts darauf zugreifen kann. Mit dem Entfernen der Vorsilbe this erhält man eine private Variable. Mit der Zeile this.transform = transform wird die Methode öffentlich. Diese Methode wird mittels MyFigure.transform(100,100,0) aufgerufen.

Kann es eine Klassenhierarchie geben?

Eine weitere gute Frage ist, ob JavaScript eine Klassenhierarchie enthalten kann. Die Antwort ist ein klares Ja. Betrachten wir einmal näher, wie dies vor sich geht:

Es besteht die Möglichkeit, eine Kindklasse Rectangle mit der Klasse Figure als Elternklasse zu definieren.


function Rectangle(startX, startY, endX, endY) {
this.width = endX - startX;
this.height = endY - startY;
this.centerX = (endX + startX)/2;
this.centerY = (endY + startY)/2;
this.computeArea = computeArea;
function computeArea() {
this.area = this.width*this.height;
} }
Rectangle.prototype = new Figure();

Das Objekt Rectangle wird mit vier Argumenten erzeugt. Die ersten vier Zeilen sind der Konstruktor. Die Klasse Rectangle beinhaltet eine Methode: computeArea(). Die letzte Zeile, Rectangle.prototype = new Figure();, definiert die Klasse Rectangle als Kindklasse bzw. als Erben der Klasse Figure.

Was ist die Eigenschaft prototype? Jeder Objekt-Konstruktor besitzt die Eigenschaft prototype. Man nutzt sie, um bei sämtlichen Objekten neue Eigenschaften und Methoden zu setzen. Aus diesem Grund wird der Prototyp benutzt, um Vererbung zu realisieren: child.prototype = new parent();. Alle Eigenschaften und Methoden des Elternobjekts werden dem Kindobjekt über den Prototypen zugefügt.

Man beachte, dass this.centerX, this.centerY, und area Eigenschaften sind, die in der Klasse Rectangle benutzt werden, jedoch Eigenschaften der Elternklasse Figure sind. Ähnlich der Klasse Rectangle kann die Klasse Circle als Prototyp der Klasse Figure definiert werden. Die Eltern-Kind-Beziehung kann beliebig weit gehen; man kann ein weiteres Kind von Rectangle erzeugen.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

MDM-Spezialist Semarchy stellt Data-Intelligence-Lösung vor

Als Erweiterung von Master-Data-Management ermöglicht es die Lösung, den Werdegang von Daten verstehen und sie…

2 Tagen ago

Apple stopft 15 Sicherheitslöcher in iOS und iPadOS

Sie erlauben unter anderem das Einschleusen von Schadcode. In älteren iPhones und iPads mit OS-Version…

2 Tagen ago

Hochleistungs-NAS-Speicher für KI-Daten

Neuer Speicher für KI von Huawei mit integrierter Ransomware-Erkennungs-Engine und deutlich geringerem Energiekonsum.

2 Tagen ago

Abo für Facebook: Verbraucherzentrale NRW klagt erneut gegen Meta

Diesmal geht es um das neue Abomodell für Facebook und Instagram. Die Verbraucherschützer klagen auf…

3 Tagen ago

Jedes zweite Gerät mit Redline-Infostealer infiziert

Infostealer-Infektionen haben laut Kaspersky-Studie zwischen 2020 und 2023 um mehr als das sechsfache zugenommen.

3 Tagen ago

Kaspersky warnt vor kritischen Sicherheitslücken in Cinterion-Modems

Betroffen sind Millionen IoT- und M2M-Geräte Geräte weltweit. Unter anderem können Angreifer per SMS Schadcode…

3 Tagen ago