首先要实现这种继承方法,建议先去了解一下何为原型链可以看一下我之前发的文章https://blog.csdn.net/qq_34162705/article/details/125340684?spm=1001.2014.3001.5501
用JavaScript的原型链可以实现类型之间的继承
核心思想:
可以概括为:子类型的原型为父类型的一个对象实例 。
这样的说法可能比较绕人,比较不好理解
图示分析:
也就是把父类型的对象赋给子类型的原型,将子类型原型的构造属性设置为子类型,然后在父类型的原型中添加属性和方法,这样子类型的原型就可以使用父类型的原型的属性和方法。可以在子类型的原型中添加属性和方法,或者是重写属性和方法。
具体例子:
// 定义父类型构造函数
function SupperType() {
this.supProp = 'Supper property';
}
// 给父类型的原型添加方法
SupperType.prototype.showSupperProp = function () {
console.log(this.supProp);
};
// 定义子类型的构造函数
function SubType() {
this.subProp = 'Sub property';
}
// 创建父类型的对象赋值给子类型的原型
SubType.prototype = new SupperType();
// 将子类型原型的构造属性设置为子类型
SubType.prototype.constructor = SubType;
// 给子类型原型添加方法
SubType.prototype.showSubProp = function () {
console.log(this.subProp)
};
// 创建子类型的对象: 可以调用父类型的方法
var subType = new SubType();
subType.showSupperProp(); //此处使用父类原型中的方法
subType.showSubProp(); //此处为子类原型中的方法
以上仅是个人理解,欢迎斧正