Как создать новый экземпляр класса изнутри? - PullRequest
1 голос
/ 18 июня 2019

Я хочу написать небольшую «симуляцию жизни», в которой формы жизни могут воспроизводить себя.Я хочу, чтобы каждый экземпляр класса мог создавать больше экземпляров, таких как клонирование / воспроизведение самого себя.Я знаю, как создать новый экземпляр вне класса, но я бы хотел, чтобы класс сделал это сам.

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 Ответ

1 голос
/ 18 июня 2019

Вы можете сделать что-то вроде этого.иметь свойство детей, и всякий раз, когда возраст подходит новый, создается новая 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...