一、继承
- 面向对象三大特点:封装,继承,多态
-
- 封装:打包
- 继承:如果一个对象A不具有某个功能a,通过某种方式使用了对象B的a功能 的过程
- 多态:对象或功能的多种形态,在使用某个对象时,不关心从哪来,在封装某个对象时,不关心将要在哪被使用
- 继承
-
- 构造函数执行之后得到的实例,继承了原型身上的方法(实例继承了类的原型)
- 类与类之间的继承
- 继承方式
-
- 构造函数继承(改变this指向继承)
-
-
- call,apply,bind
- 简单方便易操作
- 非常易于做多继承
- 只能继承构造函数内的属性或方法,不能继承原型身上的属性或方法
-
-
- 原型对象继承
-
-
- 其实就是在拷贝原型对象,同时注意深浅拷贝
- 只能继承原型对象上的属性或方法,不能继承构造函数内的属性或方法
- 可以实现多继承
-
-
- 原型链继承
-
-
- 既能继承构造函数内的属性或方法,又能继承原型上的属性或方法
- 但是不方便处理参数
- 不适合多继承
-
-
- 混合(组合)继承
-
-
- 构造函数+原型对象
- 构造函数+原型链
- 集合了各种方式的优点
-
-
- ES6新增的class的继承
-
-
- 语法层面上的继承
- 父类是子类的超类
- 原理:构造函数+原型链继承
-