prototype
1、构造函数.prototype → 原型对象
2、原型对象.constructor → 构造函数
3、实例对象.constructor → 构造函数
4、实例对象.__proto__ → 原型对象; Object.getPrototypeOf(对象实例) → 原型对象
5、实例对象.hasOwnPrototype(attr) 判断属性是否属于实例本身
6、attr in 实例对象 判断属性是否能被对象访问到,不管是在原型上的还是实例本身的
7、给原型对象重新赋值后(Person.prototype={} 或者 subType.prototype=new superType()),赋值前的实例和新原型对象没有联系,和原来的的原型对象保持联系(比如调用的原来原型的方法)。看实例化的时间