Javascript:必須知道的Javascript知識點之“原型鏈”


代碼示例

1 var CustomClass = function() { };
2 var CustomObject = new CustomClass();

發生了什么事情

原型鏈規則

規則1

每個對象都有一個“__proto__”屬性,這個屬性對外不可見,只有javascript解釋器知道,在google瀏覽器中可以看到這個屬性。

規則2

“取值操作”CustomObject.XXXProperty的規則是,先查找CustomObject對象本身有沒有XXXProperty,沒有的話就去CustomObject.__proto__中找,還沒找到就去CustomObject.__proto__.__proto__中去找,以此類推直到找到Object.__proto__。

規則3

“賦值操作”CustomObject.XXXProperty= xxxValue的規則是,直接將值xxxValue賦給CustomObject.XXXProperty。也就是說,“賦值操作”和原型鏈沒有任何關系。

規則4

CustomObject.__proto__指向的對象和其實例化時CustomClass.prototype指向的對象是一個對象,但是CustomClass.prototype可以隨時修改其指向的對象。

備注

只要精通“原型鏈”和“一切結皆是對象",理解“繼承”和“摻入”就不是問題了,自己實現這些特性應該也不難。我用了四年才明白上邊這些規則。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM