我有一个“点”课程
let Dot= function (x, y, z) {
this.x = x;
this.y = y;
this.z = z;
}
我想创建另一个类“ Poly”,其中包含一堆类似Dot的实例:
class Poly {
constructor(nDots){
for(let i = 0; i < nDots; i++){
this.dots[i] = new Dot(Math.floor(Math.random() * 600), Math.floor(Math.random() * 600), Math.floor(Math.random() * 600));
}
}
}
但是我认为不可能在构造函数中使用FOR循环。 :) 我的问题有解决办法吗? 感谢您的关注。
答案 0 :(得分:2)
可以在构造函数中使用for
循环。您的问题是您没有初始化this.dots
数组:
constructor(nDots) {
this.dots = [];
for(let i = 0; i < nDots; i++){
this.dots[i] = /* ... */;
}
}
顺便说一句,最好使用Array#push
而不是[i]
来填充数组:
this.dots.push( /* ... */ );
答案 1 :(得分:1)
初始化this.dots[i]
,现在应该可以了。
在这种特定情况下,对于array manipulation,您还可以使用array.push(...)。