亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript中關于重寫原型的問題,是如何指向的的?

JavaScript中關于重寫原型的問題,是如何指向的的?

慕桂英3389331 2019-04-21 20:37:19
functionPerson(){}Person.prototype={constructor:Person,name:"TIMY",age:77,job:"NEWS",sayName:function(){alert(this.name)}};varfriend=newPerson();friend.sayName();//輸出'TIMY'而functionPerson(){}varfriend=newPerson();Person.prototype={constructor:Person,name:"TIMY",age:77,job:"NEWS",sayName:function(){alert(this.name)}};friend.sayName();//error書上說,“重寫整個原型后,構造函數與最初的原型就切斷了聯系,而實例的指針僅指向原型,而不指向構造函數”。我不明白,重寫后的原型中有sayName()這個方法,為什么調用不到,請問應該怎么理解這句話?上面的兩個函數為什么一個可以輸出,一個是error?
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

樓上說了很多。。。。其實問題的核心只有一點就算你重寫構造函數的原型后,實例的指針仍然指向其當初構造函數的原型你進行重寫后你新原型的constructor屬性指向Person,但是實例friend指向的原型仍然為Object.prototype即friend的[[prototype]]隱式屬性仍然為Object.prototype你重寫了構造函數的原型不等于實例也會和構造函數一起改變相應的指針要知道關鍵字new才是進行一系列原型傳遞的信號,你有興趣可以看看
                            
查看完整回答
反對 回復 2019-04-21
  • 2 回答
  • 0 關注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號