prototype (Object.prototype プロパティ)

public static prototype : Object

クラスまたは関数オブジェクトのスーパークラスを参照します。prototype プロパティは自動的に作成され、作成したクラスまたは関数オブジェクトに割り当てられます。このプロパティは、作成したクラスまたは関数に固有であるという点で静的です。たとえば、カスタムクラスを作成すると、prototype プロパティの値は、クラスのすべてのインスタンスで共有され、クラスプロパティとしてのみアクセスできます。カスタムクラスのインスタンスは、prototype プロパティに直接アクセスできません。アクセスするには、__proto__ プロパティ経由で行います。

使用できるバージョン : ActionScript 1.0、Flash Lite 2.0

次の例では、Shape という名前のクラスと Circle という名前の Shape のスーパークラスを作成します。

// 外部ファイル "Shape.as" で定義される Shape クラス
class Shape {
    function Shape() {}
}

// 外部ファイル "Circle.as" で定義される Circle クラス
class Circle extends Shape{
    function Circle() {}
}

Circle クラスを使用して、Circle の 2 つのインスタンスを作成できます。

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

次の trace ステートメントでは、Circle クラスの prototype プロパティがそのスーパークラス Shape をポイントしていることを示します。識別子 Shape は、Shape クラスのコンストラクタ関数を参照しています。

trace(Circle.prototype.constructor == Shape); // true を出力する

次の trace ステートメントでは、prototype プロパティと __proto__ プロパティを同時に使用して、継承階層 (またはプロトタイプチェーン) を 2 レベル上に移動する方法を示します。Circle.prototype.__proto__ プロパティには、Shape クラスのスーパークラスへの参照が格納されています。

trace(Circle.prototype.__proto__ == Shape.prototype); // true を出力する

関連項目

__proto__ (Object.__proto__ プロパティ)