您的位置:首頁技術文章
文章詳情頁

javascript - 原型對象prototype的問題

瀏覽:105日期:2023-04-21 18:08:14

問題描述

javascript - 原型對象prototype的問題

如上圖,實例p1和p2的__proto__指向同一個原型對象Person.prototype,

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

問題解答

回答1:

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

回答2:

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

回答3:

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

回答4:

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

標簽: JavaScript
相關文章:
国产综合久久一区二区三区