动态分配的类"不是构造函数"

时间:2016-05-01 03:24:20

标签: javascript

从动态变量创建一个类。 " c1不是构造函数"错误。

var classes = [PathCarver, SolarSmasher, CoreCrusher, SunSlicer, VortexWaster];
var c1 = classes[Math.random() % classes.length - 1];
        this.p1 = new c1({'r' : 0, 'battlefield' : this, 'arsenalIndex' : 0});

如何按预期运行此代码?

1 个答案:

答案 0 :(得分:1)

Math.random() % classes.length - 1表达式不返回整数,而是返回浮点数。更重要的是,它永远不是整数,因为您将%运算符应用于[0; 1)范围内的值,该值最终会减去[0; 1)范围内的值1来自,所以它变得消极。

所以c1undefined

如果要选择随机元素,请使用Math.floor(Math.random() * classes.length)来生成随机有效索引。