JavaScript组合继承
概念

综合了[[原型链继承]]和[[盗用构造函数]]继承, 也叫做伪经典继承
- 用原型链继承, 继承父类(非原型)的方法和属性
- 用盗用构造函数, 继承父类原型上的方法和属性
实现代码
function Father(name){
this.name = name;
}
Father.prototype.sayName = function(){
console.log(this.name);
}
function Son(name){
Father.call(this, name);// 盗用构造函数
}
Son.prototype = new Father(); // 原型链继承
let s = new Son("JSON");
console.log(s);
注意点
- [[盗用构造函数]]那部分是无法给父类对象赋值, 所以出现了下面运行情况
name: undefined
