关于原型链
? ? JavaScript 的每個對象都擁有一個原型對象,對象以其原型為模板、從原型繼承方法和屬性。原型對象也可能擁有原型,并從中繼承方法和屬性,一層一層、以此類推。這種關系常被稱為原型鏈。理解原型鏈之前,需要首先清楚 __proto__ 與 prototype:
1. 所有的對象都有__proto__屬性,該屬性對應該對象的原型.
2. 所有的函數對象都有prototype屬性,該屬性的值會被賦值給該函數創建的對象的_proto_屬性.
3. 所有的原型對象都有constructor屬性,該屬性對應創建所有指向該原型的實例的構造函數.
4. 函數對象和原型對象通過prototype和constructor屬性進行相互關聯.
/* 此處借圖表示 */
關鍵在于箭頭的指向,下面取一個實例來說明。
現在有一個構造函數?Person , 以此創建一個實例?person1
function Person (){name: 'Nicholas' } var person1 = new Person ()對象 person1 有一個?__proto__屬性,創建它的構造函數是 Person,構造函數 Person 的原型對象是 Person.prototype ,那么 person1 的 __proto__ 指向 Person.prototype,所以:
person1.__proto__ == Person.prototype如圖,來自《JavaScript 高級程序設計》:
?
最后供出這張神圖
?
轉載于:https://www.cnblogs.com/_error/p/10277614.html
總結
- 上一篇: Python3文件操作详解 Pytho
- 下一篇: 关于form组件的补充-------fo