我有一个函数,它将(自定义)类的2个实例作为参数。但是它们可以是几个类中的一个,然后我需要根据它们的类型调用另一个函数。我想做这样的事情:
function any_any(inst1, inst2) {
this[inst1.classname + "_" + inst2.classname] (inst1, inst2);
}
function Circle_Line(circle:Circle, line:Line) {
//treat this case
}
我应该在每个类中定义'classname',还是有更好的方法来获取实例的类名?
我不知道如何让typeof()为自定义类返回除'object'以外的任何东西,也许它可能?
编辑:使用instanceof运算符会很不方便,因为每个类可以是6个中的1个(当前)。
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以使用instanceof
var a:Number;
if (a instanceof Number)
{
trace("a is a number");
}
答案 2 :(得分:-1)
获取实例类的另一种方法是使用
var c:Class = instance["constructor"];
然后你可以这样做:
switch(c)
{
case Circle:
whatever();
}