3

(カスタム) クラスの 2 つのインスタンスをパラメーターとして受け取る関数があります。しかし、それぞれが複数のクラスの 1 つになる可能性があるため、それらの型に基づいて別の関数を呼び出す必要があります。私はこのようなことをしたいと思います:

function any_any(inst1, inst2) {
    this[inst1.classname + "_" + inst2.classname] (inst1, inst2);
}
function Circle_Line(circle:Circle, line:Line) {
    //treat this case
}

各クラスで「classname」を定義する必要がありますか、またはインスタンスのクラス名を取得するより良い方法はありますか? カスタムクラスの「オブジェクト」以外を返すように typeof() を取得する方法がわかりません。可能でしょうか?

編集: 各クラスは 6 つのうちの 1 つになる可能性があるため (現在)、instanceof 演算子を使用するのは不便です。

4

3 に答える 3

3

instanceof、または'is' operator、またはgetQualifiedClassName メソッドを使用できます

于 2010-01-09T01:39:10.787 に答える
0

使用できますinstanceof

   var a:Number;

   if (a instanceof Number)
   {
       trace("a is a number");
   }
于 2010-01-09T01:39:13.323 に答える
-1

インスタンスのクラスを取得する別の方法は、

var c:Class = instance["constructor"];

次に、次のようなことができます。

switch(c)
{
    case Circle:
        whatever();
}
于 2010-01-25T09:42:27.260 に答える