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

Bub*_*les 3 apache-flex actionscript flex3 actionscript-3

例如,我在A类中有一个函数:

    private function functionA(f:Function):void
    {
        var objB:B;
        objB.f();
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法将类B的非静态公共成员函数作为参数传递给functionA?(当然,来自A类内部)我知道c ++中存在这样的语法,但不确定你是否可以在flex/as3中执行此操作

Ric*_*lay 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");
}
Run Code Online (Sandbox Code Playgroud)

与该函数关联的实例随之携带.如果需要在不同的实例调用上调用该函数f.apply(instance, [1, "hi"])

AS3没有委托或函数签名的概念作为类型,因此您需要知道要传入的参数.