有没有办法将另一个类的成员函数作为参数传递给as3中的函数?

问题描述:

例如,我有一个函数A类:有没有办法将另一个类的成员函数作为参数传递给as3中的函数?

private function functionA(f:Function):void 
    { 
     var objB:B; 
     objB.f(); 
    } 

有没有办法通过B类的非静态公共成员函数作为参数传递给泛函? (从内A级,当然) 我知道这样的语法在C存在++,但不知道如果你能做到这一点的Flex/AS3

+0

+ 1名称为“Bubbles” – 2011-05-27 01:32:45

肯定的:

var a : A = new A(); 
var b : B = new B(); 

a.functionA(b.functionB); 

... 

private function functionA(f:Function):void 
{ 
    f(); 

    // or 

    f(1, "hi"); 
} 

与功能相关联的实例随身携带。如果您需要调用不同的实例调用该函数f.apply(instance, [1, "hi"])

AS3没有委托或函数的签名作为一种类型的概念,所以你需要知道的参数中传递。