国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript原型鏈

2019-11-07 23:12:50
字體:
來源:轉載
供稿:網友

原型鏈的繼承就是將子類的PRototype.__proto__鏈接到父類的prototype,借此完成原型鏈

child.prototype.__proto__.= parent.prototype

實例化的對象沒有prototype,prototype是函數特有的屬性,所有的對象都有__proto__, 這是指向實例化這個對象的類的prototype,所有對象的原型鏈最后是null

下面是經典的原型鏈繼承的例子,我借此解釋一下

  function extend(Child, Parent) {    var F = function(){};    //將父類的prototype復制到F函數中    F.prototype = Parent.prototype;    /*new F()實例化F()實際的作用是生成了一個下面這個對象    {    __proto__: {    //Parent.prototype    }    }    這樣就完成了    Child.prototype.__proto__ = Parent.prototype這個原型鏈繼承的核心內容    */    Child.prototype = new F();    //Parent.prototype的constructor是Parent,為了準確這里要手動將Child.prototype.constructor改為Child    Child.prototype.constructor = Child;    //這里是為了代碼實際開發時方便調用父類,不用使用__proto__    Child.uber = Parent.prototype;  }

涉及到繼承這一塊,javascript 只有一種結構,那就是:對象。在 Javascript 中,每個對象都有一個指向它的原型(prototype)對象的內部鏈接。這個原型對象又有自己的原型,直到某個對象的原型為 null 為止(也就是不再有原型指向),組成這條鏈的最后一環。這種一級一級的鏈結構就稱為原型鏈(prototype chain)。—MDN原型鏈描述

上面這句話有些長,看代碼獲取會直觀一點

childClass.prototype.__proto__ == parantClass.prototypechildInstance.__proto__ == childClass.prototypechildInstance.__proto__.__proto__ == childClass.prototype.__proto__ == parantClass.prototype

對于這里的childInstance.__proto__ == childClass.prototype,是由關鍵字new實現的,具體可以看我的另外一篇文章new到底做了什么

參考文獻 Javascript繼承機制的設計思想 Javascript面向對象編程(二):構造函數的繼承 繼承與原型鏈


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新竹县| 正安县| 郑州市| 大安市| 屯门区| 射洪县| 文登市| 勃利县| 伊通| 财经| 平遥县| 且末县| 岑溪市| 神农架林区| 微博| 天津市| 偃师市| 克山县| 宜兰县| 调兵山市| 榆林市| 江都市| 广安市| 成武县| 兰溪市| 贺州市| 洪湖市| 拉萨市| 门源| 简阳市| 临澧县| 达州市| 洪泽县| 吴旗县| 习水县| 南岸区| 白城市| 法库县| 望奎县| 香港 | 大埔区|