从动态变量创建一个类。 " 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});
如何按预期运行此代码?
答案 0 :(得分:1)
Math.random() % classes.length - 1
表达式不返回整数,而是返回浮点数。更重要的是,它永远不是整数,因为您将%
运算符应用于[0; 1)
范围内的值,该值最终会减去[0; 1)
范围内的值1
来自,所以它变得消极。
所以c1
是undefined
。
如果要选择随机元素,请使用Math.floor(Math.random() * classes.length)
来生成随机有效索引。