

1 funciton Person(){ 2 3 } 4 5 var person = new Person(); 6 7 Person.prototype = { 8 constructor: Person, 9 name: 'June', 10 age: 24 11 } 12 13 14 //person.sayName(); //error
调用构造函数创建实例时,会为实例添加一个指向最初原型的__proto__指针,而把构造函数的原型修改为另一个新对象就等于切断了构造函数与最初原型的连接。
注意:实例中的指针仅指向原型,而不指向构造函数。
Person.prototype -> Person Prototype{/*第一个构造函数原型对象*/}
person.__proto__ -> Person Prototype{...}
重写原型对象后
Person.prototype -> New Person Prototype{/*修改后的构造函数原型对象*/}
person.prototype -> Old Person Prototype{/*第一个构造函数原型对象,第一个原型对象不会销毁,因为person对象指向它*/}