继承的概述
构造函数:构造函数也是函数,构造函数也是类,首字母大写,new运算符进行调用,产生实例对象。通过实例对象访问对象下面具有的属性和方法。(构造函数内部的属性和方法都是私有的)
prototype:每一个函数都有一个原型prototype对象,原型对象里面放的是对象共有属性和方法
面向对象的两种写法
混合开发:构造函数+原型
ES6新增的class -- 上面语法的语法糖
继承
子类继承父类,但是不能影响父类。
proto__:每一个对象都有一个__proto__属性,原型链依靠这个属性连接起来
ES6 class继承方式
ES6继承两个核心的关键字:extends super
extends:
class可以通过extends关键字实现继承,这比es5的原型链的继承,要清晰和方便。
super:
子类必须在constructor方法中调用super()方法,否则新建实例就会报错。
子类自己的this对象,必须通过父类构建,也就是说如果不调用super方法,无法使用this。
super即可当函数使用,也可当对象使用。