如何将对象中的所有参数(逐个)传递给AS3中的构造函数?

Kle*_*ber 1 constructor class actionscript-3 params

这是一个很难回答的问题,但我会试着解释一下.我将Class其构造函数和参数作为对象.我需要做的是一个函数,它返回这个类的一个实例,将这些参数传递给构造函数.

这是代码:
一些随机和不可修改的类:

public Foo {
    public function Foo(a:int, b:String) {
        // constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一些功能(在另一个类中):

function bar(params:Object):* {  
    var baz:Foo = new Foo(params.a, params.b);
    return baz;
}
Run Code Online (Sandbox Code Playgroud)

我需要做的是使这个函数通用,没有params作为参数传递给Foo构造函数,因为我无法修改它.就像是:

function bar2(clazz:Class, params:Object):* {
    var baz:* = new clazz(/*some magic way to transform params in comma separated parameters*/);
    return baz;
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?
非常感谢.

alx*_*lxx 7

这称为参数化工厂.首先我想到了Function.apply,但它不适用于构造者(他 - 他).所以,人们正在制造这样的工厂:

function create(what:Class, args:Array):* {
    switch (args.length) {
        case 0: return new what();
        case 1: return new what(args[0]);
        case 2: return new what(args[0], args[1]);
        ...
        //PROFIT!
    }
    throw new Error("Need moar cases!");
}
Run Code Online (Sandbox Code Playgroud)