坏小仔

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
View Code
 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对象指向它*/} 

posted on 2013-03-24 09:45  坏小仔  阅读(280)  评论(0编辑  收藏  举报