有下面两个类,下面实现Man继承People:
function People() {
this.type = 'prople'
}
People.prototype.eat = function () {
console.log('吃东西啦');
}
function Man(name) {
this.name = name;
this.color = 'black';
}
@前端进阶之旅: 代码已经复制到剪贴板
# 原型继承
将父类指向子类的原型。
Man.prototype = new People();
@前端进阶之旅: 代码已经复制到剪贴板
缺点:原型是所有子类实例共享的,改变一个其他也会改变。
# 构造继承
在子类构造函数中调用父类构造函数
function Man(name) {
People.call(this);
}
@前端进阶之旅: 代码已经复制到剪贴板
缺点:不能继承父类原型,函数在构造函数中,每个子类实例不能共享函数,浪费内存。
# 组合继承
使用构造继承继承父类参数,使用原型继承继承父类函数
