千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

继承概述
子类继承父类,不能影响父类。继承是和构造函数(类)相关的一个应用是指,让一个构造函数去继承另一个构造函数的属性和方法所以继承一定出现在 两个构造函数之间
继承的方式
借用构造函数继承 - 混合开发
把父类构造函数体借用过来使用一下而已(只能借到父类构造函数里面的属性和方法)
优点是子类不再共享父类的属性,子类可以进行传参
缺点是子类每次实例化的时候,父类的方法都要创建一遍,造成内存浪
原型链继承
Son.prototype = new father();
利用原型链来继承父类原型上面的成员,弊端修改子类的构造函数
Son.prototype.constructor = Son;
恢复子类的构造函数
ES6的继承 - 最重要的
extends
Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。
extends 的写法比 ES5 的原型链继承,要清晰和方便很多
super
super这个关键字,既可以当作函数使用,也可以当作对象使用。
第一种情况,super作为函数调用时,代表父类的构造函数。
第二种情况,super作为对象时,在普通方法中,指向父类的原型对象
组合继承
寄生组合继承
Object.create()这个方法用于创建一个新对象,使现有的对象来提供新创建的对象的__proto__。被创建的对象会继承另一个对象的原型。