动态分配类“;不是构造函数”;
Dynamically assigned class "is not a constructor"
从动态变量创建类。"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});
如何按预期运行此代码?
Math.random() % classes.length - 1
表达式不返回整数,而是返回浮点数。更重要的是,它从来都不是整数,因为您将%
运算符应用于[0; 1)
范围内的值,该值与您从中减去1
的[0; 1)
范围内的数值相加,因此它变为负数。
所以c1
就是undefined
。
如果要选择随机元素,请使用Math.floor(Math.random() * classes.length)
生成随机有效索引。
相关文章:
- 使用Google Visualization动态调用构造函数
- 在HTML集合上迭代,以便在构造函数中动态定义值
- 动态分配类“;不是构造函数”;
- NodeJS-如何为模块分配构造函数.导出自执行函数
- 如何在对象构造函数内动态处理鼠标移动
- 使用 JavaScript 和构造函数的动态变量名称:使用 EaselJS 将图像动态克隆到多个画布
- 可以't在分配原型后访问构造函数
- 为什么在使用Function构造函数进行动态代码求值时没有形成闭包
- jQuery:动态分配的函数不起作用
- 在构造函数中初始化的JavaScriptPrototype属性不会重写已分配的新原型
- 动态修改JavaScript中的构造函数
- 如何将动态项和属性传递给JS构造函数
- ES6类:我怎么得到这个?属性在基类构造函数中分配给派生类原型
- Javascript动态选择构造函数,这是不正确的吗?
- 如何调用具有动态参数数量的构造函数
- JavaScript -将名称空间分配给局部变量以用于构造函数,但不确定发生了什么
- 如何在javascript中动态命名对象并使用对象构造函数
- 我们可以在对象构造函数中分配一个公共方法吗?(javascript)
- 动态生成的元素的构造函数id
- 如果重新分配了原型和构造函数,如何获取实例名称