public static prototype : Object
クラスまたは関数オブジェクトのスーパークラスを参照します。prototype プロパティは自動的に作成され、作成したクラスまたは関数オブジェクトに割り当てられます。このプロパティは、作成したクラスまたは関数に固有であるという点で静的です。たとえば、カスタムクラスを作成すると、prototype プロパティの値は、クラスのすべてのインスタンスで共有され、class プロパティとしてのみアクセスできます。カスタムクラスのインスタンスは、prototype プロパティに直接アクセスできません。アクセスするには、__proto__ プロパティ経由で行います。
次の例では、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
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート