1,JS实现的继承
(1)继承:是指子类继承父类的属性和方法;子类没有的属性和方法 可以从父类中继承
(2)JS中并没有面向对象,但是可以使用这种思想设计程序
(3)面向对象三大特征:封装;继承;多肽
2,继承的作用:
减少内存浪费,数据共享,减少代码冗余,优化,提高性能
3,继承的实现
(1)传统的继承是基于模版
class 对象名称{}
//class 子类对象 : 父类对象{}
class 子类对象 extends 父类对象{}
(2)JS的继承 是基于对象实现
使用for循环赋值
将父类的成员便利给子类,子类就相当于继承了父类的成员
(3)基于原型实现的继承
子类对象的构造函数.prototype=new 父类对象名称();
====================================
1,什么是原型链?
(1)每个构造函数都有原型对象 //创建构造函数就会默认创建一个构造函数原型对象
(2)每个对象都有构造函数 //实例化对象或者创建对象都会从新创建构造函数以及对象,会默认创建一个空的原型,可以用来存值
(3)每个构造函数的原型都是一个对象 key:value形式存在,所以是构造函数
(4)那么这个原型对象也会有构造函数
(4)那么这个原型对象的构造函数也会有对象原型
(5)这样的链式结构,称为原型链
__proto__指向原型对象
2,属性搜索原则
(1)当访问一个对象的成员的时候,就会在自身找有没有,如果找到直接使用,
(2)如果没有找到,向上查找,则去当前对象的原型对象中查找,如果找到就直接使用,