一、目录介绍
前言
第一部分 作用域和闭包
第1章 作用域是什么
1.1 编译原理
1.2 理解作用域
1.2.1 演员表
1.2.2 对话
1.2.3 编译器有话说
1.2.4 引擎和作用域的对话
1.2.5 小测验
1.3 作用域嵌套
1.4 异常
1.5 小结
第2章 词法作用域
2.1 词法阶段
2.2 欺骗词法
2.2.1 eval
2.2.2 with
2.2.3 性能
2.3 小结
第3章 函数作用域和块作用域
3.1 函数中的作用域
3.2 隐藏内部实现
3.3 函数作用域
3.3.1 匿名和具名
3.3.2 立即执行函数表达式
3.4 块作用域
3.4.1 with
3.4.2 try/catch
3.4.3 let
3.4.4 const
3.5 小结
第4章 提升
4.1 先有鸡还是先有蛋
4.2 编译器再度来袭
4.3 函数优先
4.4 小结
第5章 作用域闭包
5.1 启示
5.2 实质问题
5.3 现在我懂了
5.4 循环和闭包
5.5 模块
5.5.1 现代的模块机制
5.5.2 未来的模块机制
5.6 小结
附录A 动态作用域
附录B 块作用域的替代方案
附录C this词法
附录D 致谢
第二部分 this和对象原型
第1章 关于this
1.1 为什么要用this
1.2 误解
1.2.1 指向自身
1.2.2 它的作用域
1.3 this到底是什么
1.4 小结
第2章 this全面解析
2.1 调用位置
2.2 绑定规则
2.2.1 默认绑定
2.2.2 隐式绑定
2.2.3 显式绑定
2.2.4 new绑定
2.3 优先级
2.4 绑定例外
2.4.1 被忽略的this
2.4.2 间接引用
2.4.3 软绑定
2.5 this词法
2.6 小结
第3章 对象
3.1 语法
3.2 类型
3.3 内容
3.3.1 可计算属性名
3.3.2 属性与方法
3.3.3 数组
3.3.4 复制对象
3.3.5 属性描述符
3.3.6 不变性
3.3.7 [[Get]]
3.3.8 [[Put]]
3.3.9 Getter和Setter
3.3.10 存在性
3.4 遍历
3.5 小结
第4章 混合对象“类”
4.1 类理论
4.1.1 “类”设计模式
4.1.2 JavaScript中的“类”
4.2 类的机制
4.2.1 建造
4.2.2 构造函数
4.3 类的继承
4.3.1 多态
4.3.2 多重继承
4.4 混入
4.4.1 显式混入
4.4.2 隐式混入
4.5 小结
第5章 原型
5.1 [[Prototype]]
5.1.1 Object.prototype
5.1.2 属性设置和屏蔽
5.2 “类”
5.2.1 “类”函数
5.2.2 “构造函数”
5.2.3 技术
5.3 (原型)继承
5.4 对象关联
5.4.1 创建关联
5.4.2 关联关系是备用
5.5 小结
第6章 行为委托
6.1 面向委托的设计
6.1.1 类理论
6.1.2 委托理论
6.1.3 比较思维模型
6.2 类与对象
6.2.1 控件“类”
6.2.2 委托控件对象
6.3 更简洁的设计
6.4 更好的语法
6.5 内省
6.6 小结
附录A ES6中的Class