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

// 一.继承的概述
// - 继承是和构造函数(类)相关的一个应用
// - 是指,让一个构造函数去继承另一个构造函数的属性和方法
// - 所以继承一定出现在 两个构造函数之间
// 1.ES6的继承 - 最重要的
// 1.1.extends
// Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。
// extends 的写法比 ES5 的原型链继承,要清晰和方便很多。
// 1.2.super
// super这个关键字,既可以当作函数使用,也可以当作对象使用。
// 第一种情况,super作为函数调用时,代表父类的构造函数。
// 第二种情况,super作为对象时,在普通方法中,指向父类的原型对象;
// 一.借用构造函数继承 - 混合开发
// 把父类构造函数体借用过来使用一下而已(只能借到父类构造函数里面的属性和方法)
// 优点是子类不再共享父类的属性,子类可以进行传参
// 缺点是子类每次实例化的时候,父类的方法都要创建一遍,造成内存浪费;
// 一.继承
// 1.class继承(使用最多,间接的继承方式) - extends/super
// 2.借助构造函数继承(继承构造函数里面的属性和方法) - call/apply实现
// 3.拷贝继承(拷贝原型上面的属性和方法) - Object.assign
// 4.原型链继承(原型上面的属性和方法)
// 原型链的概念:实例对象与原型(prototype)之间的连接,依靠的是内置原型(__proto__)
// 5.组合继承:将上面的2和4合并
// 5.1.属性通过借助构造函数继承
// 5.2.方法通过原型链继承
// 一.寄生组合式继承
// 开发人员普遍认为寄生组合式继承是引用类型最理想的继承范式
// Object.create()这个方法用于创建一个新对象,使现有的对象来提供新创建的对象的__proto__。被创建的对象会继承另一个对象的原型。