创建一个函数时,会自动为这个函数创建一个prototype属性指向原型对象;所有的原型对象自动获取一个constructor属性,指向与之关联的构造函数。
每次调用构造函数创建一个新实例,这个实例内部[[prototype]]指针会指向构造函数的原型对象,实例的[[prototype]]可通过__proto__来访问。
function Person(){
}
var person = new Person();
console.log(Person.prototype.constructor === Person);//true
console.log(person.__proto__==Person.prototype);//true
Object.getPrototypeOf()返回参数内部的[[prototype]],即取得参数的原型
console.log(Object.getPrototypeOf(person)==Person.prototype);//true