原型:每个函数下头都有一个默认的prototype属性,这个prototype指向一个对象,这个对象就是原型对象,里面包含两个属性construction(构造器)和__proto__。construction指向一个对象,这个对象就是函数其本身。
原型链:每个实例对象里都有__proto__这个属性,其中里面还包含两个属性分别是construction(构造器)和__proto__,以此往复,每个__proto__下都有construction(构造器)和__proto__,因此这个过程就叫原型链。
继承:继承有七种,分别是原型链继承,构造继承,组合继承,原型式继承,寄生/寄生组合继承,拷贝继承、实例继承。
总结:
访问对象中的一个属性,如果这个属性不在对象中,[[Get]]操作就会查找对象内部原型关联的对象,这个关联关系实际上就是定义了一条原型链,在查找属性和方法时会对它进行遍历。
基本所有的对象都有内置的Object.prototype, 这个Object.prototype指向原型链顶端,如果调用一个自身没有的方法或属性,那么就会在原型链上进行寻找,若直至顶层也没有找到,那么搜索就会停止。