如何从一个实例中创建一个新的类实例?

时间:2019-06-18 09:47:54

标签: javascript oop

我想写一个小的“生命模拟”,在其中生命形式可以自我复制。 我希望每个类实例都能够创建更多实例,例如克隆/复制自身。 我确实知道如何从类外部创建新实例,但是我希望类自己完成。

class Life{

    constructor(){
        this.age = 0;
    }

    frame_loop(){
        this.age ++;

        if (this.age == 18){
            this.reproduce();
        }
    }

    reproduce(){
        // obviously does not work
        this.new();
    }

}

let bacteria = new Life();

我不想像课外那样创造新生活

let bacteria1 = new Life();

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作。拥有一个儿童财产,只要年龄合适,就会创建新的Life()

class Life{
    children = [];
    constructor(){
        this.age = 0;
    }

    frame_loop(){
        this.age ++;

        if (this.age == 18){
            this.reproduce();
        }
    }

    reproduce(){
        console.log("new life")
        this.children.push(new Life());
    }

}

let bacteria = new Life();
for(var i = 0; i < 100; i++){
  bacteria.frame_loop();
}