JS里的继承有很多种,此篇文章只举了三种普通常见的继承类型,希望能为读者日常的学习提供一定的帮助。
原型链继承
我们通过一个例子来了解什么是原型链继承
function SuperType() {
// 超类
this.superproerty = true
}
SuperType.prototype.getSuperValue = function () {
return this.superproerty
}
function SubType() {
// 子类
this.subproperty = false
}
SubType.prototype.getSuperValue = function () {
return this.subproperty
}
SubType.prototype = new SuperType()
var instance = new SubType()
console.log(instance.getSuperValue());
问:最后输出是什么?true 还是 false ?
答案: 输出 true。
原因:SubType.prototype = new SuperType()
这一行代码用 SuperType 类型的一个实例重写了 SubType 的原型对象,使得SubType 的原型对象找到了 SuperType 的原型对象。
这个例子中, SubType 继承了