本帖最后由 bljbljbljblj 于 2013-03-05 16:11:59 编辑

解决方案 »

  1.   


    function newGrid(gridClassName,id,para){
        var grid = new gridClassName();
        grid.doSomething();
        return grid;
    }
    var grid = newGrid(YourGrid,"yourGridID","exParas");// 注意第一个参数无引号
    是这样吗,楼主?
      

  2.   

    直接new形参,估计不行啊 @qq378527566
      

  3.   


    你试过才知道啊。形参是构造函数,只要你保证你的var grid2=new YourGrid({id:"yourGrd",OtherParameters:"..."});能通过,那我写的就能通过。
      

  4.   

    楼上的已经可以了,在楼上代码基础上增加点用处不大的功能,支持传递函数名称作为参数
    function newGrid(gridClassName,id,para){
        var grid;
        if(typeof gridClassName=='function') {
            grid = new gridClassName();
        } else {
            eval("grid=new ("+gridClassName+");");
        }
        grid.doSomething();
        return grid;
    }
    var grid1 = newGrid('MyGrid',"myGridID","exParas");//允许使用函数名称,但注意作用域
    var grid2 = newGrid(YourGrid,"yourGridID","exParas");
      

  5.   

    哦,我试试看,这个类比较恶心,参数必须加在构造函数里,如果构造函数没有参数,用eval就能实现