在Javascript中为对象设置超类型

在Javascript中为对象设置超类型,javascript,object,prototype,Javascript,Object,Prototype,我在freecodecamp.org上关注一个案例,发现了一个我无法理解的案例,尽管有解释 我从以下代码开始: 功能类别(名称){ this.name=名称; } 类别原型={ 建造师:猫, eat:function(){ console.log(“nom nom”); } }; 函数熊(名称){ this.name=名称; } Bear.prototype={ 建造师:熊, eat:function(){ console.log(“nom nom”); } }; 函数Animal(){} 动物

我在freecodecamp.org上关注一个案例,发现了一个我无法理解的案例,尽管有解释

我从以下代码开始:

功能类别(名称){
this.name=名称;
}
类别原型={
建造师:猫,
eat:function(){
console.log(“nom nom”);
}
};
函数熊(名称){
this.name=名称;
}
Bear.prototype={
建造师:熊,
eat:function(){
console.log(“nom nom”);
}
};
函数Animal(){}
动物原型={
建造师:动物,
};
本课程是关于为不同对象设置原型时避免重复。在本例中,我们看到
Cat
Bear
的原型都有相同的方法
eat
。因此建议的解决方案是设置一个包含该方法的超类型

功能类别(名称){
this.name=名称;
}
类别原型={
建造师:猫,
};
函数熊(名称){
this.name=名称;
}
Bear.prototype={
建造师:熊,
};
函数Animal(){}
动物原型={
建造师:动物,
eat:function(){
console.log(“nom nom”);
}
};

这一切都很好,但是。。。在哪里定义,
动物
的超类型?这个代码似乎有效,这让我很困惑。

我建议阅读原型继承,示例资源:“在哪里定义,动物是熊和猫的超类型?”-在您展示的示例代码中,它确实不是。看起来是一堂解释得很糟糕的课。@Enriquemorett它不起作用。或者你还没有展示整个剧本。还有,什么是有效的?代码甚至没有在任何地方创建实例,也没有调用
eat
方法。我认为您已经走在了前面。测试只是希望您重构one方法。我假设在以后的练习中,他们将实际演示如何将所有内容链接在一起。@Enriquemorennotent显然是这样。或者,本课程只是实际工作代码的中间步骤。(在我看来,这些步骤的顺序是错误的)我建议大家阅读原型遗传,示例资源:“在哪里定义的,那个动物是熊和猫的超类型?”——在你们展示的示例代码中,它确实不是。看起来是一堂解释得很糟糕的课。@Enriquemorett它不起作用。或者你还没有展示整个剧本。还有,什么是有效的?代码甚至没有在任何地方创建实例,也没有调用
eat
方法。我认为您已经走在了前面。测试只是希望您重构one方法。我假设在以后的练习中,他们将实际演示如何将所有内容链接在一起。@Enriquemorennotent显然是这样。或者,本课程只是实际工作代码的中间步骤。(国际海事组织,这些步骤的顺序是错误的)