Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript リファレンスガイド > ActionScript クラス > Object > 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__ プロパティ)