继承
继承我们在这里只说常用的3种
1.原型链继承
记住3句话 每个实例都包含一个指向原型对象的指针 每个原型对象都包含一个指向构造函数的指针 每个构造函数都有一个原型对象
function person(){
this.name = "wang";
}
person.prototype.name = "ze";
person.prototype.getName=function(){
console.log(this.name);
}
function student(){
this.name = "li";
}
function child(){
this.name = "zhang";
}
student.prototype = new person(); //重点
child.prototype = new student(); //重点
var xue = new student();
var child = new child();
xue.getName();
child.getName();
2.构造函数继承
在子类型构造函数的内部调用超类型构造函数
function Animal(name){
this.name = name;
}
function Cat(name){
Animal.call(this,name) //重点
}
var cat = new Cat("miaomiao");
console.log(cat);
3.组合式继承
将原型链继承与构造函数继承结合起来就ok,好处把共同的方法和属性放在原型上,把有差异的当构造函数处理
function Animal(name){
this.name = name;
}
Animal.prototype.getName=function(){
console.log(this.name)
}
function Cat(name){
Animal.call(this,name)
}
Cat.prototype = new Animal();
var cat = new Cat("miaomiao");
console.log(cat);
网友评论