例如,我在A类中有一个函数:
private function functionA(f:Function):void
{
var objB:B;
objB.f();
}
有没有办法将类B的非静态公共成员函数作为参数传递给functionA? (当然,来自A级内部) 我知道c ++中存在这样的语法,但不确定你是否可以在flex / as3
中执行此操作答案 0 :(得分:8)
不确定
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没有委托或函数签名的概念,所以你需要知道传入的参数。