国产探花免费观看_亚洲丰满少妇自慰呻吟_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面向對象編程(二):構造函數的繼承 繼承與原型鏈


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣恩县| 文成县| 宜兰市| 晋宁县| 图们市| 咸宁市| 无为县| 雷波县| 凤阳县| 阜新| 时尚| 丹东市| 乐至县| 阿荣旗| 揭东县| 江华| 武山县| 余江县| 瑞金市| 阜新| 海城市| 枣强县| 广灵县| 年辖:市辖区| 安吉县| 苍梧县| 岐山县| 克东县| 定结县| 漾濞| 永吉县| 察哈| 枣庄市| 胶南市| 东明县| 泸水县| 万源市| 晋城| 莎车县| 本溪市| 常德市|