原型

1. 实例和构造函数(类)的关系
    - 实例是类的具象化,由new关键字执行类之后得到的对象
    - 类是实例的抽象化,将多个具有共同特点的对象的特点抽象成规范,这个规范叫类(构造函数)
    - 实例 被 类 创造

2. 实例对象
    - 其实可以作为普通对象看待,普通对象也有以下特点
    - 内部会自带一个属性:`__proto__`,这个属性是个对象类型,用来指向创建自身的类,身上的`prototype`属性
    - `__proto__`也被称为隐式原型

3. 可被构造的函数(类)
    - 每个可被new执行的函数(类),身上都会有一个属性:`prototype`,这个属性是个对象类型,用来**被**将来new执行创建出来的实例身上的隐式原型`__proto__`指向
    - `prototype`也被称为显示原型
    - 在`prototype`这个属性内,又有一个属性:`constructor`,用来指向当前`prototype`所属的函数

4. 对象的属性的读写规则
    - 向上查找,就近原则
        - 当使用对象某个属性时,会先在对象自身查找,如果有就使用,如果没有,会顺着隐式原型,继续查找,如果找到,使用,同时停止,如果还没,继续查找...直到顶层原型,还找不到,抛出undefined

    - 通过实例,查找某个属性,自身没有,其实就是找自身构造函数的`prototype`

    - 如果给构造函数的`prototype`添加属性或方法,意味着,将来的实例,也可以使用
原文地址:https://www.cnblogs.com/yh-3175339026/p/13033392.html