1、构造函数的原型
每一个构造函数都有一个属性--原型/原型对象,所以通过Student构造函数创建的对象,可以访问Student.prototype中的成员。
2、对象的原型
2.1、当调用对象的属性或者放大的时候,先去找对象本身的属性/方法,如果对象没有改属性或方法,此时去调用原型中的属性/方法,如果对象本省没有该属性/方法,原型中也没有该属性/方法,就会报错。
2.2、对象中的constructor记录了创建该对象的构造函数
3、构造函数、原型对象、实例/对象三者之间的关系
构造函数创建对象,构造函数拥有原型对象,对象也拥有原型对象,原型对象中的constructor记录了创建该对象的构造函数,指回原型对象所在的函数,且Student.prototype === s1._proto_,如下图所示
4、原型链
5、组合继承(借用构造函数 + 原型继承)
通过原型让子类型继承父类型中的方法,使用构造函数继承父类型中的属性