2

あるクラスが別のクラスから (直接的または間接的に) 派生するかどうかを判断する必要があります。

できます

var testInstance : Object = new ClassA();
if (testInstance is ClassB)
    ...

しかし、祖先をテストするためだけにインスタンスを作成するのは嫌いです。if (ClassA is ClassB) が機能することを期待しましたが、機能しないようです。

ASヘルプ状態

isPrototypeOf(theClass:Object):Boolean
オブジェクト クラスのインスタンスが、
パラメータとして指定されたオブジェクトのプロトタイプ チェーンにあるかどうかを示します。

私は実際には ActionScript のプロトタイプを理解していません (気が狂ってしまうかもしれません) が、Class オブジェクトが継承情報を利用する何らかの方法を持っていることを願っています。

ありがとう

4

1 に答える 1

0

プロトタイプは、クラス(クラス継承の場合) または親クラス (プロトタイプ継承の場合) のいずれかのインスタンスです。試す:

Object.prototype.extends=function (theClass:Object):boolean {
    return this.prototype instanceof theClass;
}

ClassA.extends(ClassB);

ActionScript 3 は、プロトタイプの継承をクラスベースの継承に押し込みます。Actionscript でプロトタイプを使用することはあまりなくなりましたが、プロトタイプは複雑な概念ではなく、使用方法もあるので、よく調べてください。「高度なトピック」の「 ActionScript OOP サポートの歴史」および「プロトタイプ オブジェクト」を参照してください。

于 2009-09-23T00:23:33.013 に答える