prototype (Object.prototype プロパティ)

public static prototype : Object

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

対応バージョン : ActionScript 1.0、Flash Player 6

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

// Shape class defined in external file named Shape.as
class Shape {
    function Shape() {}
}

// Circle class defined in external file named Circle.as
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); // Output: true

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

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

関連項目

__proto__ (Object.__proto__ プロパティ)


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00002043.html