原型对象

constructor,proptotype和__proto__的关系

constructor:构造函数
prototype:构造函数的原型对象
__ proto__:实例的原型对象 = 构造函数的原型对象

关系示例
function Person(){}
let p = new Person()
Person //f Person()构造函数
p.constructor //f Person()构造函数
Person.prototype.constructor //f Person()构造函数

p.__ proto__ //{constructor,__ proto__} Person原型对象
Person.prototype //{constructor,__ proto__} Person原型对象

Person.constructor //f Function()构造函数

原型对象

常用方法:

p.hasOwnProperty(key):在对象自身查找属性而不到原型上查找
Person.prototype = isPrototypeOf( p ): 判断一个对象是否是某个实例的原型对象