// 构造函数
function Person(){
// this.name = 'zhudanmei'
}
Person.prototype.name = 'huyajie'
var person1 = new Person()
var person2 = new Person()
console.log(person1.name)
console.log(person2.name)
/* 每个函数都有一个 prototype 属性,
其实,函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型,也就是这个例子中的 person1 和 person2 的原型。
那什么是原型呢?你可以这样理解:每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。
让我们用一张图表示构造函数和实例原型之间的关系:*/
console.log(person1.__proto__ === Person.prototype)
console.log(person2.__proto__ === Person.prototype)
console.log(Person === Person.prototype.constructor)
console.log(Object.getPrototypeOf(person1) === Person.prototype)
console