1. 原型(prototype):每个函数都有一个 prototype 属性,它默认指向一个空的 Object 对象(即原型对象);原型对象中有一个 constructor 属性,它指向函数对象;一般常用来给原型对象添加方法,使其所有的实例对象都自动拥有该方法
    2. 显示原型与隐式原型:
    • 每个构造函数都有一个 prototype(显式原型)
    • 每个实例都有一个 proto(隐式原型)
    • 实例对象的隐式原型的值是其构造函数的显示原型的值
    1. 原型链:访问一个对象的属性时,先在其自身查找,如果没有再沿着隐式原型查找,如果最终还没有找到则返回 undefined。
    2. 原型链的终点:原型链的终点为 Object() 的显示原型的隐式原型,指向为 null
    3. instanceof 的原理:就是看被判断的对象的 prototype 是否在判断的对象的 proto 原型链上

    image.png