1.继承:
在编写代码时,有些对象会有方法(函数),如果把这些方法都放在构造函数中声明就会导致内存的浪费。则需要继承来提高代码的复用性。
2.原型继承:
就是子对象自动拥有父对象的属性和方法, 继承可以提高代码的复用性。
function Animal(name){
this.name=name;
}
Animal.prototype.eat=function(){
console.log("Animal eat");
}
function Human(id){
this.id=id;
}
//如何实现原型继承:
//让子类的原型对象等于父类的任意实例化对象
Human.prototype=new Animal("呆毛");
//实现继承的作用:
// 1.子类可以直接使用父类派生的属性和方法。
// 2.子类可以添加自己新的属性和方法
Human.prototype.study=function(){
console.log("Human study");//子类添加的新的方法
}
let h=new Human(1);
console.log(h.name);//呆毛
h.eat();//Animal eat
console.log(h.id);//1
h.study();//Human study
2.1原型链:
JS里的继承主要依靠是的原型链。让原型对象(每一个构造函数都有一个原型对象)的值,等于另一个类型的实例,即实现了继承;另外一个类型的原型再指向第三个类型的实例,以此类推,也就形成了一个原型链