面向?qū)ο竽J胶屠^承

1.面向?qū)ο筇攸c

  • 封裝:隱藏對象的屬性和實現(xiàn)細(xì)節(jié),僅對外公開接口
  • 繼承:通過繼承,我們可以非常優(yōu)雅地實現(xiàn)對現(xiàn)有代碼的重用
  • 多態(tài):不同對象通過相同的方法調(diào)用實現(xiàn)各自行為的能力,稱之為多態(tài)

2.構(gòu)造函數(shù)與普通函數(shù)區(qū)別

  1. 用new關(guān)鍵字調(diào)用
  2. 函數(shù)內(nèi)部使用this關(guān)鍵字
  3. 默認(rèn)不用return返回值
  4. 函數(shù)命名建議首字母大寫,方便與普通函數(shù)區(qū)分

3.數(shù)據(jù)屬性

  • Configurable:表示能否通過delete刪除屬性從而重新定義屬性
  • Enumerable:表示能否通過for-in循返回屬性
  • Writable:表示能否修改屬性的值
  • Value:包含這個屬性的數(shù)據(jù)值

4.訪問器屬性

  • Configurable:表示能否通過delete刪除屬性從而重新定義屬性
  • Enumerable:表示能否通過for-in循返回屬性
  • Get:在讀取屬性值時調(diào)用的函數(shù)
  • Set:在寫入屬性值時調(diào)用的函數(shù)

5.創(chuàng)建對象模式

  • 工廠模式:解決代碼重復(fù)問題
  • 構(gòu)造函數(shù)模式:解決從原型對象生成實例的問題
  • 原型模式:解決內(nèi)存浪費問題
  • 組合構(gòu)造函數(shù)模式和原型模式:集兩種模式之長
  • 動態(tài)原型模式:在構(gòu)造函數(shù)中初始化原型
  • 寄生構(gòu)造函數(shù)模式:在特殊情況下,用來為對象創(chuàng)建構(gòu)造函數(shù)
  • 穩(wěn)妥構(gòu)造函數(shù)模式:禁止使用this和new,更安全

6.運算符和方法

  • instanceof運算符:驗證原型對象與實例對象之間的關(guān)系
  • isPrototypeOf方法:用來判斷某個proptotype對象和某個實例之間的關(guān)系
  • hasOwnProperty方法:用來判斷某一個屬性是本地屬性,還是繼承自prototype對象的屬性
  • in運算符:用來判斷某個實例是否含有某個屬性,還可以用來遍歷某個對象的所有屬性

7.call與apply

  • 用途:改變this的指向,將函數(shù)綁定到另外一個對象上去運行
  • 第一個參數(shù)都必須有且是一個對象
  • 定義參數(shù)方式不同,后者的第二個參數(shù)是arguments

8.繼承

  • 原型鏈繼承:利用原型讓一個引用類型繼承另一個引用類型的屬性和方法
  • 借用構(gòu)造函數(shù)繼承:在子類型構(gòu)造函數(shù)的內(nèi)部調(diào)用超類型構(gòu)造函數(shù)
  • 組合繼承:集二者之長
  • 原型式繼承:借助原型并基于已有的對象創(chuàng)建新對象,不用創(chuàng)建自定義類型
  • 寄生式繼承:創(chuàng)建一個僅用于封裝繼承過程的函數(shù)
  • 寄生組合式繼承:解決兩次調(diào)用的問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容