Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从实例中创建新的类实例?_Javascript_Oop - Fatal编程技术网

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

Javascript 如何从实例中创建新的类实例?,javascript,oop,Javascript,Oop,我想写一个小的“生命模拟”,在那里生命形式可以自我复制。 我希望每个类实例能够创建更多实例,比如克隆/复制自身。 我确实知道如何从类外部创建一个新实例,但我希望该类能够自己创建 class Life{ constructor(){ this.age = 0; } frame_loop(){ this.age ++; if (this.age == 18){ this.reproduce();

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

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();

感谢您的帮助。

您可以这样做。拥有儿童财产,只要年龄合适,就会创造新的生命()

课堂生活{
儿童=[];
构造函数(){
这个年龄=0;
}
帧_循环(){
这个.age++;
如果(this.age==18){
这个;
}
}
复制{
控制台日志(“新生活”)
这个.儿童.推(新生活());
}
}
让细菌=新生命();
对于(变量i=0;i<100;i++){
细菌;

}
我想你这里有语法错误:
课堂生活()
你说得对,干杯。更正。我为这个问题创建了这个简化的代码示例,以使问题更容易理解:)是否应该
复制
创建一个新实例并将其覆盖到现有实例,还是应该将新实例存储为当前实例的子实例?@briosheje:谢谢您的示例。在您的代码示例中,“复制”在类外部称为“手动”。我正在寻找一个解决方案,其中类本身“决定”创建一个新的类。它也可以在它内部调用,您只需调用
frame\u loop
18次。请解释所需的结果,以便我们能进一步帮助您。