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ū)別
- 用new關(guān)鍵字調(diào)用
- 函數(shù)內(nèi)部使用this關(guān)鍵字
- 默認(rèn)不用return返回值
- 函數(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)用的問題