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

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

js prototype的問題

js prototype的問題

慕粉3900206 2016-10-14 16:40:17
原文:當時當我們重新定義函數的prototype時(注意:和上例的區別,這里不是修改而是覆蓋), constructor的行為就有點奇怪了,如下示例:function?Person(name)?{ ????????????this.name?=?name; ????????}; ????????Person.prototype?=?{ ????????????getName:?function()?{ ????????????????return?this.name; ????????????} ????????}; ????????var?p?=?new?Person("haorooms"); ????????console.log(p.constructor?===?Person);??//?false ????????console.log(Person.prototype.constructor?===?Person);?//?false ????????console.log(p.constructor.prototype.constructor?===?Person);?//?false為什么呢? 原來是因為覆蓋Person.prototype時,等價于進行如下代碼操作:Person.prototype?=?new?Object({ ????????????getName:?function()?{ ????????????????return?this.name; ????????????} ????????});-------------------------------------------------------------分割線----------------------------------------------------問題1.為什么重新定義prototype后p.constructor?===?Person都會返回false問題2.Person.prototype?=?new?Object({ ????????????getName:?function()?{ ????????????????return?this.name; ????????????} ????????});沒看懂什么意思,為什么要在寫參數的位置定義屬性方法呢
查看完整描述

1 回答

  • 1 回答
  • 1 關注
  • 1200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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