OOP:object-oriented-programming
无序的属性的继承–对象
把数据及数据的操作方法放在一起,作为一个互相依存的整体----对象
创建具有 相同 属性名的 对象 的函数 --类
对同类对象 抽象出 其共性,形成类
类中的大多数数据只能用本类的方法进行处理
特性:
封装
第一层含义: 把对象的属性和行为看成一个密不可分的整体,
另一层含义: 信息隐藏,把不需要让外界知道的信息隐藏起来
继承
子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法
继承的好处:
1、提高代码复用
2、提高了代码的维护性
3、使得类和类产生了关系
1)原型链继承
优点:继承所有
缺点:不能给父类传参
1、创建父类
2、创建子类
3、子类.prototype =new 父类()
4、实例化 子类 得到对象
1 、
function Fu(name,age){
this.name=name;
this.age=age;
}
Fu.prototype.say=function(){}
2、
function Zi(){
}
3、
Zi.prototype = new Fu("gao",19);
4、
var obj = new Zi();
var obj1 = new Zi();
2)类式继承/ 借用构造函数继承/ 改变this 指向 继承
优点:可以给父类传参
缺点:不能继承 父类 的原型对象
1、创建父类
2、创建子类
3、子类内部 调用父类 -改变 父类的this 指向
4、实例化 子类 得到对象
1、创建父类
function Fu(name,age){
this.name=name;
this.age=age;
}
Fu.prototype.say=function(){}
2、创建子类
function Zi(name,age){
}
3、子类内部 调用父类 -改变 父类的this 指向
function Zi(name,age){
Fu.call(this,name,age)
}
4、实例化 子类 得到对象
var obj= new Zi("gao",18)
3)组合继承
原型链继承 + 类式继承
多态
前提条件 – 继承
子类 有自身 的 属性 和方法。