var Uuid = (function () { var i=0; return function () { return ++i; }; })();
さらにeval,String.replaceと組み合わせて
var params = ["hoge", "fuga", "aaa"];
Class = function () {};
Class.reflection = function (classname, params) {
var args = [];
for(var i=0; i < params.length; i++) args.push("params[%d]");
return eval("new " + classname + "(" + args.join(",").replace(/%d/g, (function () {
var i=0; return function () { return i++; };
})()) + ")");
}
var a = Class.reflection("Array", params);
クラス名文字列とパラメータの配列からクラスを生成するリフレクション
Function.bindを利用しても同じことはできるけど、IEなどで使えない場合にはこれが使える。