いつもお世話になっております。

クロージャーにて引数を渡せなく悪戦苦闘しております。
(勉強中でして、この記述方法をクロージャーと言うのか心配です)

以下のサンプルソースは正常で、AAをクリックするとログ"abc"が表示されます。
やりたいことは、インスタンスAを生成する時に、表示したい文字列を一緒に渡したいです。

ご教授ご鞭撻のほどよろしくお願い致します。

class GameScene: SKScene {

    override func didMove(to view: SKView) {

        if let node = A(closure: hoge) { ←hoge(text: "abc")をやってみたい
            self.addChild(node)
        }
        /*
        if let node = A(closure: hoge) { ←hoge(text: "def")をやってみたい
            node.position = CGPoint(x: 50, y: 50)
            self.addChild(node)
        }
        */
    }

    /*
    func hoge(text: String) { ←こっちを使ってみたい
        print(text)
    }
    */
    func hoge() {
        print("abc")
    }
}


class A: SKLabelNode {

    //var handler: (String) -> ()
    var handler: () -> ()

    //init?(closure: @escaping (String) -> ()) {
    init?(closure: @escaping () -> ()) {

        self.handler = closure

        super.init()

        self.isUserInteractionEnabled = true

        let node = SKLabelNode(text: "AA")
        self.addChild(node)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.handler()
    }
}