JS继承有几种?如何实现继承?
js有3种继承:原型链继承、经典继承(借用构造函数)、组合继承(原型链继承+经典继承)
实现继承:
-
原型链继承:当原型对象等于另外一个类型的实例即继承。
Dog.prototype = new Animal();
-
经典继承:在子类型对象上执行父类型函数中定义的所有对象初始化的代码。
Animal.call(this,type,age);
function Animal(type, age) {
this.type = type;
this.age = age
};
Animal.prototype = {
constructor: Animal,
sayType: function () {
console.log(this.type);
}
};
function Dog(type, age, color) {
//经典继承
Animal.call(this, type, age);
this.color = color;
};
//原型链继承
Dog.prototype = new Animal();
Dog.prototype.constructor = Dog;
Dog.prototype.sayColor = function () {
console.log(this.color);
}
var dog = new Dog('花狗', 1, '白色');
console.log(dog);
dog.sayColor();
dog.sayType();