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

/*
了解继承
发生在两个构造函数之间的
多个构造函数之间,有共同的属性或方法,可以去创建一个公共的父类构造函数
从公共的父类构造函数上面继承相关的属性和方法
怎么从父类继承?
(1)原型链继承
(2)借用构造函数继承
(3)组合继承
(4)拷贝继承
(5)ES6继承(class继承)
*/
/*
原型链继承
把父类的实例化对象赋值给子类的原型对象
优点:可以从父类上面继承所有的方法和属性
缺点:需要在两个地方进行传递参数
子类就没有自己的原型对象了 如果添加方法,会直接添加到父类的实例化对象里面
*/
/*
借用构造函数继承(call继承)
在子类构造函数体内,改变父类构造函数的this指向
缺点:只能继承父类构造函数体内的方法,不能继承原型对象上的方法
优点:只需要在一个地方传递参数
*/
/*
组合继承
原型链继承和借用构造函数继承一起使用
借用构造函数继承 继承父类构造函数体内的方法和属性,放在子类实例化对象体内
原型链继承主要帮助 继承父类构造函数的原型对象中的方法和属性
优点:只需要在一个地方传参
缺点:子类没有自己的原型对象
*/
/*
拷贝继承
在子类构造函数体内进行父类的实例化,得到一个实例化对象
遍历拷贝到子类的实例化对象体内
优点:可以继承父类构造函数体内的方法和属性,也可以继承原型对象上面的方法与属性
也可以只在一处传参
*/
/*
ES6继承(class继承)
语法:
class 子类 extends 父类{
constructor(){
super() //传递参数 必须写到第一行
}
}
*/