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)
有人可以帮帮我吗?
非常感谢.
这称为参数化工厂.首先我想到了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)