探討一下js中的繼承和原型鏈

---恢復內容開始---函數

 每一個JS對象必定對應一個原型對象,並從原型對象繼承屬性和方法。 也就是說 對象的__proto__屬性的值就是它所對應的原型對象, 而prototype 只有函數纔有的屬性。

1. 先建立一個對象, prototype

    

  經分析可知,自定義對象的__proto__屬性指向Object的原型,而且自定義對象沒有 prototype的屬性

2 建立函數,並打印出__proto__ 和 prototypecode

               

  建立函數時,設置__proto__屬性指向的是 Function的原型,並自動添加prototype屬性 ,prototype中有一個 constructor 又指回函數

 3 建立構造函數,並new 對象對象

              

  經過上面的例子總結, 對象的__proto__屬性值指向它所對應的原型對象,原型鏈頂端是Object.prototype,  Function.prototypeFunction.__proto__都指向Function.prototype, Function.prototype繼承於Object.prototype , 普通函數繼承於Function.prototype

Function.__proto__ === Function.prototypeblog

 

  如今大體已經明白了,其中的關係,最後放一張盜來的圖,更清晰明瞭

              

 

---恢復內容結束---繼承

相關文章
相關標籤/搜索