原型鏈機制:
創新互聯公司是一家業務范圍包括IDC托管業務,網絡空間、主機租用、主機托管,四川、重慶、廣東電信服務器租用,資陽托管服務器,成都網通服務器托管,成都服務器租用,業務范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區的互聯網數據服務公司。在ECMAscript中描述了原型鏈的概念,并將原型鏈作為實現繼承的主要方法,其基本思想就是利用原型讓一個引用類型繼承另一個引用類型的屬性和方法。
構造函數和原型還有實例之間的關系:
每個構造函數都有一個原型對象(prototype),原型對象都包含一個指向構造函數的指針(constructor),而實例都包含一個指向原型對象的內部指針 ( __propto__ ) 。關系圖如下圖所示:
每一個Function都是Object基類的一個實例,所以每一個Function上都有一個__proto__指向了Object.prototype。
當查找一個實例的屬性時,會先從這個實例的自定義屬性上找,如果沒有的話通過__proto__去實例所屬類的原型上去找,如果還沒有的話再通過原型(原型也是對象,只要是對象就有__proto__屬性)的__proto__到Object的原型上去找,一級一級的找,如果沒有就undefined。
所以引用類型之間的繼承就是通過原型鏈機制實現的。
一.原型繼承
原型繼承:把父類的私有+公有的屬性和方法,都作為子類公有的屬性。
核心:不是把父類私有+公有的屬性克隆一份一模一樣的給子類的公有。他是通過__proto__建立和子類之間的原型鏈,當子類的實例需要使用父類的屬性和方法的時候,可以通過__proto__一級級找上去使用。
function Parent(){ this.x = 199; this.y = 299; } Parent.prototype.say = function(){ console.log('say') } function Child(){ this.g = 90; } Child.prototype = new Parent(); var p = new Parent(); var c = new Child(); console.dir(c)
網頁題目:JavaScript常見的繼承方式匯總-創新互聯
網站鏈接:http://vcdvsql.cn/article40/gieho.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、服務器托管、網站策劃、小程序開發、全網營銷推廣、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯