有没有办法将另一个类的成员函数作为参数传递给as3中的函数?
问题描述:
例如,我有一个函数A类:有没有办法将另一个类的成员函数作为参数传递给as3中的函数?
private function functionA(f:Function):void
{
var objB:B;
objB.f();
}
有没有办法通过B类的非静态公共成员函数作为参数传递给泛函? (从内A级,当然) 我知道这样的语法在C存在++,但不知道如果你能做到这一点的Flex/AS3
答
肯定的:
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没有委托或函数的签名作为一种类型的概念,所以你需要知道的参数中传递。
+ 1名称为“Bubbles” – 2011-05-27 01:32:45