一、理解對(duì)象
屬性在創(chuàng)建時(shí)都帶有一些特征值,js通過這些特征值來定義它們的行為
- 屬性類型
- 數(shù)據(jù)屬性:
- 數(shù)據(jù)屬性有4個(gè)描述其行為的特性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]]
- Object.defineProperty方法可以修改屬性默認(rèn)的特性
- 訪問器屬性
- 訪問器屬性不能直接定義,必須使用Object.defineProperty
- 訪問器屬性有4個(gè)特性: [[Configurable]]、[[Enumerable]]、[[Get]]、[[Set]]
- 定義多個(gè)屬性,使用Object.defineProperties方法,實(shí)現(xiàn)效果和上述相同
- 讀取屬性的特性O(shè)bject.getOwnPropertyDescriptor()
二、創(chuàng)建對(duì)象
- 工廠模式
- 構(gòu)造函數(shù)模式
- 原型模式
- 組合使用構(gòu)造函數(shù)模式和原型模式
- 動(dòng)態(tài)原型模式
- 寄生構(gòu)造函數(shù)模式
- 穩(wěn)妥構(gòu)造函數(shù)模式
三、繼承
- 原型鏈
- 構(gòu)造函數(shù)實(shí)現(xiàn)繼承
- 組合繼承
- 原型式繼承
- 寄生式繼承
- 寄生組合式繼承