原型的动态性(5.2.2)
情况1:
<script type="text/javascript"> function Person(){ } var friend = new Person();//位置不同,产生不同效果 //重写原型对象切断了现有原型与任何之前已经存在的对象实例之间的联系 Person.prototype = { constructor : Person, name : '高伟刚', age : 24, job : 'Software Engineer', sayName : function(){ alert(this.name); } } friend.sayName();//error,不支持的属性或方法 </script>
图6-3展示上面过程的内幕:
情况2:
<script type="text/javascript"> function Person(){ } Person.prototype = { constructor : Person, name : '高伟刚', age : 24, job : 'Software Engineer', sayName : function(){ alert(this.name); } } var friend = new Person(); friend.sayName();//“高伟刚” </script>
图6-4展示上面过程的内幕:画图