一、理解对象
属性在创建时都带有一些特征值,js通过这些特征值来定义它们的行为
- 属性类型
- 数据属性:
- 数据属性有4个描述其行为的特性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]]
- Object.defineProperty方法可以修改属性默认的特性
- 访问器属性
- 访问器属性不能直接定义,必须使用Object.defineProperty
- 访问器属性有4个特性: [[Configurable]]、[[Enumerable]]、[[Get]]、[[Set]]
- 定义多个属性,使用Object.defineProperties方法,实现效果和上述相同
- 读取属性的特性Object.getOwnPropertyDescriptor()
二、创建对象
- 工厂模式
- 构造函数模式
- 原型模式
- 组合使用构造函数模式和原型模式
- 动态原型模式
- 寄生构造函数模式
- 稳妥构造函数模式
三、继承
- 原型链
- 构造函数实现继承
- 组合继承
- 原型式继承
- 寄生式继承
- 寄生组合式继承