我們知道繼承是oo語言中不可缺少的一部分,對于JavaScript也是如此。一般的繼承有兩種方式:其一,接口繼承,只繼承方法的簽名;其二,實(shí)現(xiàn)繼承,繼承實(shí)際的方法。JavaScript不支持簽名,因此只有實(shí)現(xiàn)繼承。其中實(shí)現(xiàn)繼承主要是依賴于原型鏈的。下面我將以原型鏈為重點(diǎn)說說繼承的幾種主要的方式:

  • 原型鏈繼承
  • 借用構(gòu)造函數(shù)繼承
  • 組合繼承(重點(diǎn))

第一部分:原型鏈繼承

A

要說原型鏈繼承,不得不首先介紹一下原型鏈的概念。

想象一下,如果使原型對象等于另一個(gè)對象的實(shí)例,則此時(shí)原型對象將包含一個(gè)指向另一個(gè)原型的指針。相應(yīng)地,另一個(gè)原型也將包含指向另一個(gè)構(gòu)造函數(shù)的指針。假設(shè)另一個(gè)原型又是另一個(gè)類型的實(shí)例,那么上述關(guān)系依然成立,如此層層遞進(jìn),就構(gòu)成了實(shí)例與原型的鏈條(注意:這里的實(shí)例和原型都是相對的),這便是原型鏈的基本概念。


          1

          網(wǎng)友評論