为了账号安全,请及时绑定邮箱和手机立即绑定

关于JavaScript中原型的动态性问题

关于JavaScript中原型的动态性问题

收到一只叮咚 2018-09-12 10:09:39
function Person(){    }     var friend = new Person();     Person.prototype.constructor = Person;     Person.prototype.name = "Nima";     Person.prototype.age = 23;     alert(friend.name);这样写friend.name可以正常显示;function Person(){    }     var friend = new Person();    Person.prototype = {         constructor:Person,         name : "Nima",         age : 23     }     alert(friend.name);这样写friend.name则是undefined;原因是Person.prototype.name,这么写相当于在原型对象中加了新的属性,实例的指针指向prototype还是没变的,所以可以显示name。但是Person.prototype = { ... }这么写,相当于是重写了原型对象,那么刚才的实例中的指针就失效了,所以name是undefined。这样理解没错吧?但是,这个例子中:var obj = {        name : 'Linken',        gender :'male',        age : 23,        id : 'teacher'     }     var a = obj;     obj = {        gender :'male',        age : 23,        id : 1234     }     alert(a.name);为什么a.name依然可以正常弹出???
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号