簡體   English   中英

有沒有辦法將另一個 class 的成員 function 作為參數傳遞給 as3 中的 function?

[英]Is there a way to pass the member function of another class as a parameter to a function in as3?

例如,我在 class A 中有一個 function:

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

有沒有辦法將 class B 的非靜態公共成員 function 作為參數傳遞給函數 A? (當然,來自 class 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");
}

與 function 關聯的實例隨身攜帶。 如果您需要在不同的實例上調用 function,請調用f.apply(instance, [1, "hi"])

AS3 沒有委托或函數簽名作為類型的概念,因此您需要知道 arguments 才能傳入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM