第1章 原始类型和引用类型 1
1.1 什么是类型 2
1.2 原始类型 3
1.2.1 鉴别原始类型 4
1.2.2 原始方法 6
1.3 引用类型 6
1.3.1 创建对象 6
1.3.2 对象引用解除 7
1.3.3 添加删除属性 8
1.4 内建类型实例化 8
1.4.1 字面形式 9
1.4.2 对象和数组字面形式 9
1.4.3 函数字面形式 10
1.4.4 正则表达式字面形式 11
1.5 访问属性 11
1.6 鉴别引用类型 12
1.7 鉴别数组 13
1.8 原始封装类型 14
1.9 总结 16
第2章 函数 17
2.1 声明还是表达式 18
2.2 函数就是值 19
2.3 参数 21
2.4 重载 23
2.5 对象方法 24
2.5.1 this 对象 25
2.5.2 改变this 26
2.6 总结 29
第3章 理解对象 31
3.1 定义属性 32
3.2 属性探测 33
3.3 删除属性 35
3.4 属性枚举 36
3.5 属性类型 37
3.6 属性特征 38
3.6.1 通用特征 39
3.6.2 数据属性特征 40
3.6.3 访问器属性特征 41
3.6.4 定义多重属性 43
3.6.5 获取属性特征 44
3.7 禁止修改对象 45
3.7.1 禁止扩展 45
3.7.2 对象封印 45
3.7.3 对象冻结 47
3.8 总结 48
第4章 构造函数和原型对象 49
4.1 构造函数 49
4.2 原型对象 53
4.2.1 [[Prototype]]属性 54
4.2.2 在构造函数中使用原型对象 57
4.2.3 改变原型对象 60
4.2.4 内建对象的原型对象 62
4.3 总结 63
第5章 继承 65
5.1 原型对象链和Object.prototype 65
5.1.1 继承自Object.prototype的方法 66
5.1.2 修改Object.prototype 68
5.2 对象继承 69
5.3 构造函数继承 72
5.4 构造函数窃取 75
5.5 访问父类方法 77
5.6 总结 78
第6章 对象模式 79
6.1 私有成员和特权成员 80
6.1.1 模块模式 80
6.1.2 构造函数的私有成员 82
6.2 混入 84
6.3 作用域安全的构造函数 90
6.4 总结 92
索引 93