原型:对象都有原型对象 (__proto__),函数原型对象(prototype)
注意:对象没有 prototype 属性,只有方法才有。
任何对象都有 constructor 属性,执行创建此对象的构造函数。
function Person() {}
var p = new Person();
// 构造函数原型 Person.prototype
// 实例对象原型 p.__proto__
Person.prototype === p.__proto__
原型链:因为所有对象都有原型,所以以对象的原型为链式查找叫原型链
核心:依赖对象的 __proto__ 指向,直至找到 null 为止。