Class-Objekt

class Class extends Object

Ein Class-Objekt repräsentiert eine Klassendefinition; es enthält statische Methoden und Eigenschaften.

Jedes Klassenobjekt basiert auf der Klasse, die es erweitert, oder auf Object, falls nicht angegeben. Das globale Klassenobjekt Object basiert auf Class.Prototype, das wiederum auf Object.Prototype basiert, so dass Klassen Methoden und Eigenschaften von jedem dieser Basisobjekte erben können.

"Statische" Methoden und Eigenschaften sind alle Methoden und Eigenschaften, die dem Klassenobjekt selbst gehören (und daher nicht für eine bestimmte Instanz gelten), während Methoden und Eigenschaften für Instanzen der Klasse dem Prototyp der Klasse gehören.

"ClassObj" wird hier stellvertretend für ein beliebiges Klassenobjekt verwendet, da "Class" die Klasse selbst ist. Normalerweise wird auf ein Klassenobjekt via Name verwiesen, der in dessen Klassendefinition angegeben ist.

Inhaltsverzeichnis

Methoden

Call

Konstruiert eine neue Instanz der Klasse.

Obj := ClassObj(Params*)
Obj := ClassObj.Call(Params*)

Diese statische Methode wird typischerweise von der Object-, Array- oder Map-Klasse geerbt. Sie führt die folgenden Funktionen aus:

Call kann innerhalb einer Klassendefinition durch Definieren einer statischen Methode überschrieben werden, z.B. static Call(). Auf diese Weise können Klassen die Konstruktion neuer Instanzen ändern oder verhindern.

Beachten Sie, dass Class() (in diesem Fall tatsächlich "Class") verwendet werden kann, um ein neues Class-Objekt basierend auf Class.Prototype zu konstruieren. Dieses neue Objekt hat jedoch zunächst keine Call-Methode, da es keine Unterklasse von Object ist. Es kann zu einer Unterklasse von Object durch Zuweisung an Base gemacht werden, oder die Call-Methode kann reimplementiert oder aus einer anderen Klasse kopiert werden. Außerdem muss ein Prototyp erstellt und der Klasse zugewiesen werden, bevor sie mit der Standard-Call-Methode instanziiert werden kann.

Eigenschaften

Prototype

Ermittelt oder setzt das Objekt, auf dem alle Instanzen der Klasse basieren.

Proto := ClassObj.Prototype
ClassObj.Prototype := Proto

Der Prototyp der Klasse enthält standardmäßig alle Instanzmethoden und dynamischen Eigenschaften, die in der Klassendefinition definiert sind, und kann verwendet werden, um Referenzen zu Methoden oder Eigenschafts-Getter/Setter abzurufen oder neue zu definieren. Das Skript kann zudem neue Werteigenschaften definieren, die als Standardeigenschaftswerte für alle Instanzen dienen.

Der Prototyp einer Klasse basiert normalerweise auf dem Prototyp ihrer Basisklasse, folglich ist ClassObj.Prototype.base == ClassObj.base.Prototype.

Prototype wird automatisch als eigene Eigenschaft eines Klassenobjekts, das via Klassendefinition erzeugt wurde, definiert.