搜尋

首頁  >  問答  >  主體

javascript - 原型物件prototype的問題

#如上圖,實例p1p2__proto__指向同一個原型物件Person.prototype

執行p1.age=12,為啥p1.age沒跟著變成12,而還是原來的0

#
習慣沉默習慣沉默2775 天前831

全部回覆(4)我來回復

  • 漂亮男人

    漂亮男人2017-06-30 10:00:00

    p1.age並不會改變原型的值,p2沒有age屬性,會順著原型鏈往上找,找到Person裡面age,所以p2.page就是等於Person.prototype.age

    回覆
    0
  • 阿神

    阿神2017-06-30 10:00:00

    因為p1.age修改的是 p1 上的屬性而不是原型上的屬性。

    回覆
    0
  • 世界只因有你

    世界只因有你2017-06-30 10:00:00

    p1.age = 12只會給p1的age賦值,不會給Person的age值,所以p2的age沒有被賦值,所以還是原型上的0

    回覆
    0
  • 为情所困

    为情所困2017-06-30 10:00:00

    p1.age = 12實際上是給p1添加了一個值為12的屬性age,訪問p1.age時會直接訪問到這個屬性而不會去原型鏈上找p1.age時會直接訪問到這個屬性而不會去原型鏈上找age ,如果要實現p1 p2都改變,可以這麼寫

    p1.__proto__.age = 12🎜🎜

    回覆
    0
  • 取消回覆