继承
继承 是指一种关系,是类与类之间的关系, 但是js中没有类这个概念,js是通过构造函数模拟类. 然后通过原型 来实现继承
继承也是为了数据共享
原型作用之一: 数据共享,节省内存空间
原型作用之二: 为了实现继承
继承实例讲解:
列子:人,都有姓名,性别,年龄,吃饭,睡觉,玩.....
学生,都有姓名,年龄,性别,吃饭,睡觉,玩,学习,成绩......
function Person(name,sex,age){
this.name=name;
this.age=age;
this.sex=sex;
}
// 将人类 共有的方法 可以写入在 原型中
Person.prototype.eat=function(){};
Person.prototype.sleep=function(){};
Person.prototype.play=function(){};
js继承基于对象
在JavaScript中,继承就是当前对象可以使用其他对象的方法和属性。
原型继承是指利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承
1.给原型对象中添加成员(通过对象的动态特性)不是严格意义上的继承
2.直接替换原型对象
3.利用混入得方式 给原型对象添加成员
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.sayHi=function(){
console.log('Hey man');
}
var parent={
sayHello:function(){
console.log('我想死你了');
}
};
for(var k in parent){
Person.prototype[k]=parent[k];
}
var p=new Person('冯巩',50);
p.sayHello();
// 也是实现了继承 p继承自原型对象
原型链:
每个构造函数都有原型对象// 创建一个构造函数 都会默认的创建一个 构造函数的原型
每个对象都有构造函数
每个构造函数的原型都是一个对象
那么这个原型对象也会有构造函数
那么这个原型对象的构造函数也有原型对象
这样就会形成一个链式结构,称之为 原型链