1.原型链继承实例化对象的方式
2.原型链继承直接继承的方式
3.利用空对象作为中介
4.构造函数的方式,主要是call()和apply()
5.混合继承的方式,将原型链和构造函数两种方式进行混合
6.拷贝继承,将父类的prototype直接拷贝给子类
混合方式案例:
function Car() {
this.lunzi = 4;
}
Car.prototype.run = function () {
document.write(`
${this.name}有${this.lunzi}个轮子,会跑赛道`)
}
Bc.prototype = new Car();
Bc.prototype.contructor = Bc;
function Bc(name) {
Car.call(this)
this.name = name;
}
let a = new Bc('奔驰')
a.run()
拷贝继承案例:
function Car() { };属性和方法都用原型的方式呈现
Car.prototype.lunzi = 4;
Car.prototype.run = function () {
document.write(`${this.name}有${this.lunzi}个轮子,会跑赛道`)
}
function Bc(name) {
this.name = name
};
function extend(child, parent) {封装一个函数
for (let key in parent.prototype) {通过for循环将父类的prototype的值赋给子类
child.prototype[key] = parent.prototype[key]
}
}
extend(Bc, Car)
let bc1 = new Bc('奔驰');
bc1.run()