更新时间:2020-01-10 15:38:49
封面
版权信息
数字版权声明
作者简介
序
前言
第一部分 基础知识
第1章 面向对象的JavaScript
1.1 动态类型语言和鸭子类型
1.2 多态
1.3 封装
1.4 原型模式和基于原型继承的JavaScript对象系统
第2章 this、call和apply
2.1 this
2.2 call和apply
第3章 闭包和高阶函数
3.1 闭包
3.2 高阶函数
3.3 小结
第二部分 设计模式
第4章 单例模式
4.1 实现单例模式
4.2 透明的单例模式
4.3 用代理实现单例模式
4.4 JavaScript中的单例模式
4.5 惰性单例
4.6 通用的惰性单例
4.7 小结
第5章 策略模式
5.1 使用策略模式计算奖金
5.2 JavaScript版本的策略模式
5.3 多态在策略模式中的体现
5.4 使用策略模式实现缓动动画
5.5 更广义的“算法”
5.6 表单校验
5.7 策略模式的优缺点
5.8 一等函数对象与策略模式
5.9 小结
第6章 代理模式
6.1 第一个例子——小明追MM的故事
6.2 保护代理和虚拟代理
6.3 虚拟代理实现图片预加载
6.4 代理的意义
6.5 代理和本体接口的一致性
6.6 虚拟代理合并HTTP请求
6.7 虚拟代理在惰性加载中的应用
6.8 缓存代理
6.9 用高阶函数动态创建代理
6.10 其他代理模式
6.11 小结
第7章 迭代器模式
7.1 jQuery中的迭代器
7.2 实现自己的迭代器
7.3 内部迭代器和外部迭代器
7.4 迭代类数组对象和字面量对象
7.5 倒序迭代器
7.6 中止迭代器
7.7 迭代器模式的应用举例
7.8 小结
第8章 发布—订阅模式
8.1 现实中的发布-订阅模式
8.2 发布-订阅模式的作用
8.3 DOM事件
8.4 自定义事件
8.5 发布-订阅模式的通用实现
8.6 取消订阅的事件
8.7 真实的例子——网站登录
8.8 全局的发布-订阅对象
8.9 模块间通信
8.10 必须先订阅再发布吗
8.11 全局事件的命名冲突
8.12 JavaScript实现发布-订阅模式的便利性
8.13 小结
第9章 命令模式
9.1 命令模式的用途
9.2 命令模式的例子——菜单程序
9.3 JavaScript中的命令模式
9.4 撤销命令
9.5 撤消和重做
9.6 命令队列
9.7 宏命令
9.8 智能命令与傻瓜命令
9.9 小结
第10章 组合模式
10.1 回顾宏命令
10.2 组合模式的用途
10.3 请求在树中传递的过程
10.4 更强大的宏命令
10.5 抽象类在组合模式中的作用
10.6 透明性带来的安全问题
10.7 组合模式的例子——扫描文件夹
10.8 一些值得注意的地方
10.9 引用父对象
10.10 何时使用组合模式
10.11 小结
第11章 模板方法模式
11.1 模板方法模式的定义和组成
11.2 第一个例子——Coffee or Tea
11.3 抽象类
11.4 模板方法模式的使用场景