JavaScript原型链的核心思想为子类的原型对象是父类的一个实例对象。
详细做法:
1.分别定义父类和子类的构造函数
2.将子类的原型对象改为父类的一个实例对象
function p1(name) {
console.log('father');
}
function p2(age) {
console.log('son');
}
p2.prototype = new p1();
3.将子类的原型对象的constructor属性的值改为子类的构造函数(重点)
通过代码调试可以知道,每个对象的原型对象都有一个constructor属性指向该对象的构造函数。
而当更改了对象的原型对象后,constructor会随之消失,所以需要重新定义constructor属性,让其重新指向该对象的构造函数。
此时在父类的原型上添加方法,实例化子类对象,子类对象可以调用父类的方法。
该继承方法的缺点是只能继承一个父类。