我已经看过this问题了,我知道如何扩展课程。但是,使用方法执行此操作是一种好习惯吗?使用它是否安全:
function extendClass(child, parent) {
child.prototype = Object.create(parent.prototype);
child.constructor = child;
}
extendClass(Banana, Fruit);
而不是:
Banana.prototype = Object.create(Fruit.prototype);
Banana.prototype.constructor = Banana;
答案 0 :(得分:3)
使用函数执行重复工作而不是在需要的任何地方重复工作是标准做法。它可以减少出错的机会并集中操作,以防需要随着时间的推移而增强。在继承关系中挂钩构造函数和相关原型("类")会使它成为异常,没什么特别的。
与切向相关的旁注:自ES2015(又名" ES6",2015年6月发布的规范)以来,这种设置这些层次结构的方式已经过时(当然它仍然有效)。 ES2015 +方式为class
和extends
。