prototype (Object.prototype-Eigenschaft)

public static prototype : Object

Eine Referenz auf die übergeordnete Klasse einer Klasse oder eines Funktionsobjekts. Die Eigenschaft prototype wird automatisch erstellt und an die erstellten Klassen oder Funktionsobjekte angehängt. Diese Eigenschaft ist insofern statisch, als sie spezifisch für die Klasse oder Funktion gilt, die Sie erstellen. Wenn Sie beispielsweise eine benutzerdefinierte Klasse erstellen, wird der Wert der Eigenschaft prototype von allen Instanzen der Klasse verwendet und ist nur als Klasseneigenschaft zugänglich. Instanzen der benutzerdefinierten Klasse haben keinen direkten Zugriff auf die Eigenschaft prototype, können jedoch über die Eigenschaft __proto__ darauf zugreifen.

Verfügbarkeit: ActionScript 1.0, Flash Lite 2.0

Beispiel

Im folgenden Beispiel wird eine Klasse mit dem Namen Shape und eine ihr untergeordnete Klasse mit dem Namen Circle erstellt.

// in der externen Datei "Shape.as" definierte Klasse "Shape"
class Shape {
    function Shape() {}
}

// in der externen Datei "Circle.as" definierte Klasse "Circle"
class Circle extends Shape{
    function Circle() {}
}

Mit der Klasse Circle können zwei Instanzen von Circle erstellt werden:

var oneCircle:Circle = new Circle();
var twoCircle:Circle = new Circle();

Die folgende trace-Anweisung veranschaulicht, dass die Eigenschaft prototype der Klasse Circle auf deren übergeordnete Klasse Shape verweist. Der Bezeichner Shape verweist auf die Konstruktorfunktion der Klasse Shape.

trace(Circle.prototype.constructor == Shape); // Ausgabe: true

Die folgende trace-Anweisung veranschaulicht, wie Sie die Eigenschaften prototype und __proto__ zusammen verwenden können, um in der Vererbungshierarchie (Prototypkette) zwei Ebenen nach oben zu gelangen. Die Eigenschaft Circle.prototype.__proto__ enthält eine Referenz auf die übergeordnete Klasse der Klasse Shape.

trace(Circle.prototype.__proto__ == Shape.prototype); // Ausgabe: true

Siehe auch

__proto__ (Object.__proto__-Eigenschaft)