一、demo代碼以下:git
二、畫圖以下:github
三、規則:瀏覽器
1)每個函數數據類型(普通函數/類)都有一個天生自帶的屬性:prototype(原型),而且這個屬性是一個對象數據類型的值函數
2)而且prototype上瀏覽器天生給它加了一個屬性construtor(構造函數),屬性值是當前函數(類)自己spa
3)每個對象數據類型(普通的對象、實例、prototype...)天生自帶一個屬性:__proto__(左右各兩個_),屬性值是當前實例所屬類的原型(prototype)prototype
4)Object 是js中全部對象數據類型的基類(最頂層的類) code
5)在Object.prototype上沒有__proto__這個屬性對象
四、原型連模式:blog
五、原型鏈模式如圖:原型鏈
六、結果以下(對照畫圖):
f1.sum = function(){ //修改本身的私有的sum } f1.__proto__.sum = function(){ //修改所屬類原型上的sum }
更多內容請參考:https://github.com/mqyqingfeng/Blog/issues/2
https://github.com/creeperyang/blog/issues/9