例如,我在 A 类中有一个函数:
private function functionA(f:Function):void
{
var objB:B;
objB.f();
}
有没有办法将 B 类的非静态公共(public)成员函数作为参数传递给 functionA? (当然是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 没有委托(delegate)或函数签名作为类型的概念,因此您需要知道要传入的参数。
关于apache-flex - 有没有办法将另一个类的成员函数作为参数传递给as3中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144222/