3

我有一个函数,它将(自定义)类的 2 个实例作为参数。但是它们都可以是几个类中的一个,然后我需要根据它们的类型调用另一个函数。我想做这样的事情:

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

我应该在每个类中定义“类名”,还是有更好的方法来获取实例的类名?我不知道如何让 typeof() 为自定义类返回除“对象”以外的任何内容,也许有可能?

编辑:使用 instanceof 运算符会很不方便,因为每个类都可以是 6 个中的 1 个(当前)。

4

3 回答 3

3

您可以使用instanceof'is' 运算符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 回答