创建一个包含另一个类的实例数组的类

时间:2018-12-11 21:45:35

标签: javascript

我有一个“点”课程

  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循环。 :) 我的问题有解决办法吗? 感谢您的关注。

2 个答案:

答案 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(...)。