This is a hard question to do, but I'll try to explain.
I have the Class and the parameters of its contructor as an object. What I need to do is a function tha开发者_运维技巧t returns an instance of this class, passing this parameters to the constructor.
This is the code:
Some random and unmodifiable class:public Foo {
    public function Foo(a:int, b:String) {
        // constructor
    }
}
And some function (in some another class):
function bar(params:Object):* {  
    var baz:Foo = new Foo(params.a, params.b);
    return baz;
}
What I need to do is make this function generic, without pass params as parameter to Foo constructor because I can't modify it. Something like:
function bar2(clazz:Class, params:Object):* {
    var baz:* = new clazz(/*some magic way to transform params in comma separated parameters*/);
    return baz;
}
Anyone can help me?
Thanks a lot.This is called parameterized factory. First I thought about Function.apply, but it doesn't apply to constructors (he-he). So, people are making factories like this:
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!");
}
what about using ByteArrayto copy the object ?
function clone(source:Object):* {
    var copier:ByteArray = new ByteArray();
    copier.writeObject(source);
    copier.position = 0;
    return(copier.readObject());
}
newObjectCopy = clone(originalObject);
source
If you have the option of not using a constructor, but adding an initialise() function to each class which can be constructed instead, you could use Function.apply - something like in the example below.  
public class ThingCreator
{
    public static function createTheThing(c:Class, params:Array):Object
    {
        var the_thing:Object = new c();
        the_thing.initialise.apply(the_thing, params);
        return the_thing;
    }
}
As alxx pointed out above, Function.apply and AS3 reflection in this case does not seem to work with AS3's constructors.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论