1. 原型 prototype
每个函数都有原型prototype,原型中的 constructor又指向该函数
只有函数才有prototype属性,普通对象没有
Person.prototype.constructor === Person
2. __proto__
每个对象都有的隐藏属性,该属性指向创建该对象的构造函数的原型
person.__proto__ === Person.prototype
3. 原型链
当查找对象中的属性时,如果没有在本身属性中找到,就会往上查找对象的__proto__属性,一层一层往上找,直到找到null为止。这样就是一条原型链