JS用原型链继承
代码
function Animal(legs) {
this.legs = legs;
}
Animal.prototype.kind = "动物";
function Dog(name) {
this.name = name;
Animal.call(this, 4); //关键代码1
}
Dog.prototype.__proto__ = Animal.prototype; //关键代码2
Dog.prototype.kind = "狗";
Dog.prototype.say = function () {
console.log(`汪汪汪~ 我是${this.name},我有${this.legs}条腿。`);
};
const dog1 = new Dog("啸天"); // Dog 函数就是一个类
console.dir(dog1);
关键代码2可以替换
var f = function () {}; //弄出一个f的构造器
f.prototype = Animal.prototype; // f构造器的原型就是Animal的原型
Dog.prototype = new f(); // Dog构造器的原型继承于f的原型,也就是Animal的原型