- 軟件大?。?span>7.87M
- 軟件語言:中文
- 軟件類型:國產軟件
- 軟件類別:免費軟件 / 電子圖書
- 更新時間:2016-05-21 13:40
- 運行環(huán)境:WinAll, WinXP
- 軟件等級:
- 軟件廠商:
- 官方網站:http://m.aimjoke.net
3.90M/中文/10.0
154KB/中文/10.0
821KB/中文/10.0
42.01M/中文/2.0
156.28M/中文/10.0
javascript設計模式與開發(fā)實踐pdf是一款專門為javascript愛好者和學習者提供的pdf版本,讓用戶更好更快捷地使用pdf閱讀器和wps文件進行電腦閱讀,讓你的javascript知識快速提升,有需要的朋友們歡迎下載!
本書在尊重《設計模式》原意的同時,針對JavaScript語言特性全面介紹了更適合JavaScript程序員的了16個常用的設計模式,講解了JavaScript面向對象和函數(shù)式編程方面的基礎知識,介紹了面向對象的設計原則及其在設計模式中的體現(xiàn),還分享了面向對象編程技巧和日常開發(fā)中的代碼重構。本書將教會你如何把經典的設計模式應用到JavaScript語言中,編寫出優(yōu)美高效、結構化和可維護的代碼。
第一部分 基礎知識
第1章 面向對象的JavaScript
1.1 動態(tài)類型語言和鴨子類型 2
1.2 多態(tài) 4
1.3 封裝 12
1.4 原型模式和基于原型繼承的JavaScript對象系統(tǒng) 14
第2章 this、call和apply
2.1 this 24
2.2 call和apply 29
第3章 閉包和高階函數(shù)
3.1 閉包 35
3.2 高階函數(shù) 44
3.3 小結 58
第二部分 設計模式
第4章 單例模式
4.1 實現(xiàn)單例模式 60
4.2 透明的單例模式 61
4.3 用代理實現(xiàn)單例模式 62
4.4 JavaScript中的單例模式 63
4.5 惰性單例 65
4.6 通用的惰性單例 68
4.7 小結 70
第5章 策略模式
5.1 使用策略模式計算獎金 72
5.2 JavaScript 版本的策略模式 75
5.3 多態(tài)在策略模式中的體現(xiàn) 76
5.4 使用策略模式實現(xiàn)緩動動畫 76
5.5 更廣義的“算法” 80
5.6 表單校驗 80
5.7 策略模式的優(yōu)缺點 86
5.8 一等函數(shù)對象與策略模式 86
5.9 小結 87
第6章 代理模式
6.1 第一個例子——小明追MM的故事 88
6.2 保護代理和虛擬代理 91
6.3 虛擬代理實現(xiàn)圖片預加載 91
6.4 代理的意義 93
6.5 代理和本體接口的一致性 94
6.6 虛擬代理合并HTTP 請求 95
6.7 虛擬代理在惰性加載中的應用 97
6.8 緩存代理 99
6.9 用高階函數(shù)動態(tài)創(chuàng)建代理 100
6.10 其他代理模式 101
6.11 小結 102
第7章 迭代器模式
7.1 JQuery 中的迭代器 103
7.2 實現(xiàn)自己的迭代器 104
7.3 內部迭代器和外部迭代器 104
7.4 迭代類數(shù)組對象和字面量對象 106
7.5 倒序迭代器 106
7.6 中止迭代器 107
7.7 迭代器模式的應用舉例 107
7.8 小結 109
第8章 發(fā)布—訂閱模式
8.1 現(xiàn)實中的發(fā)布—訂閱模式 110
8.2 發(fā)布—訂閱模式的作用 110
8.3 DOM 事件 111
8.4 自定義事件 112
8.5 發(fā)布—訂閱模式的通用實現(xiàn) 113
8.6 取消訂閱的事件 115
8.7 真實的例子——網站登錄 115
8.8 全局的發(fā)布—訂閱對象 117
8.9 模塊間通信 119
8.10 必須先訂閱再發(fā)布嗎 120
8.11 全局事件的命名沖突 121
8.12 JavaScript實現(xiàn)發(fā)布—訂閱模式的便利性 124
8.13 小結 124
第9章 命令模式
9.1 命令模式的用途 125
9.2 命令模式的例子——菜單程序 126
9.3 JavaScript中的命令模式 128
9.4 撤銷命令 130
9.5 撤消和重做 132
9.6 命令隊列 134
9.7 宏命令 134
9.8 智能命令與傻瓜命令 135
9.9 小結 136
第10章 組合模式
10.1 回顧宏命令 138
10.2 組合模式的用途 139
10.3 請求在樹中傳遞的過程 139
10.4 更強大的宏命令 140
10.5 抽象類在組合模式中的作用 143
10.6 透明性帶來的安全問題 144
10.7 組合模式的例子——掃描文件夾 145
10.8 一些值得注意的地方 147
10.9 引用父對象 148
10.10 何時使用組合模式 150
10.11 小結 150
第11章 模板方法模式
11.1 模板方法模式的定義和組成 151
11.2 第一個例子——Coffee or Tea 151
11.3 抽象類 156
11.4 模板方法模式的使用場景 159
11.5 鉤子方法 160
11.6 好萊塢原則 162
11.7 真的需要“繼承”嗎 162
11.8 小結 164
第12章 享元模式
12.1 初識享元模式 165
12.2 內部狀態(tài)與外部狀態(tài) 166
12.3 享元模式的通用結構 167
12.4 文件上傳的例子 167
12.5 享元模式的適用性 173
12.6 再談內部狀態(tài)和外部狀態(tài) 173
12.7 對象池 175
12.8 小結 178
第13章 職責鏈模式
13.1 現(xiàn)實中的職責鏈模式 179
13.2 實際開發(fā)中的職責鏈模式 180
13.3 用職責鏈模式重構代碼 181
13.4 靈活可拆分的職責鏈節(jié)點 183
13.5 異步的職責鏈 184
13.6 職責鏈模式的優(yōu)缺點 185
13.7 用AOP 實現(xiàn)職責鏈 186
13.8 用職責鏈模式獲取文件上傳對象 187
13.9 小結 188
第14章 中介者模式
14.1 現(xiàn)實中的中介者 190
14.2 中介者模式的例子——泡泡堂游戲 191
14.3 中介者模式的例子——購買商品 199
14.4 小結 207
第15章 裝飾者模式
15.1 模擬傳統(tǒng)面向對象語言的裝飾者模式 210
15.2 裝飾者也是包裝器 211
15.3 回到JavaScript 的裝飾者 212
15.4 裝飾函數(shù) 212
15.5 用AOP 裝飾函數(shù) 214
15.6 AOP 的應用實例 216
15.7 裝飾者模式和代理模式 222
15.8 小結 223
第16章 狀態(tài)模式
16.1 初識狀態(tài)模式 224
16.2 狀態(tài)模式的定義 230
16.3 狀態(tài)模式的通用結構 230
16.4 缺少抽象類的變通方式 231
16.5 另一個狀態(tài)模式示例——文件上傳 232
16.6 狀態(tài)模式的優(yōu)缺點 241
16.7 狀態(tài)模式中的性能優(yōu)化點 241
16.8 狀態(tài)模式和策略模式的關系 241
16.9 JavaScript版本的狀態(tài)機 242
16.10 表驅動的有限狀態(tài)機 244
16.11 實際項目中的其他狀態(tài)機 245
16.12 小結 245
第17章 適配器模式
17.1 現(xiàn)實中的適配器 246
17.2 適配器模式的應用 247
17.3 小結 250
第三部分 設計原則和編程技巧
第18章 單一職責原則
18.1 設計模式中的SRP原則 252
18.2 何時應該分離職責 256
18.3 違反SRP原則 256
18.4 SRP 原則的優(yōu)缺點 257
第19章 最少知識原則
19.1 減少對象之間的聯(lián)系 258
19.2 設計模式中的LKP原則 259
19.3 封裝在LKP 原則中的體現(xiàn) 261
第20章 開放-封閉原則
20.1 擴展window.onload函數(shù) 263
20.2 開放和封閉 264
20.3 用對象的多態(tài)性消除條件分支 265
20.4 找出變化的地方 266
20.5 設計模式中的開放—封閉原則 268
20.6 開放—封閉原則的相對性 270
20.7 接受第一次愚弄 270
第21章 接口和面向接口編程
21.1 回到Java的抽象類 271
21.2 interface 276
21.3 JavaScript 語言是否需要抽象類和interface 275
21.4 用鴨子類型進行接口檢查 277
21.5 用TypeScript 編寫基于interface的命令模式 278
第22章 代碼重構
22.1 提煉函數(shù) 282
22.2 合并重復的條件片段 283
22.3 把條件分支語句提煉成函數(shù) 284
22.4 合理使用循環(huán) 285
22.5 提前讓函數(shù)退出代替嵌套條件分支 285
22.6 傳遞對象參數(shù)代替過長的參數(shù)列表 286
22.7 盡量減少參數(shù)數(shù)量 287
22.8 少用三目運算符 288
22.9 合理使用鏈式調用 288
22.10 分解大型類 289
22.11 用return退出多重循環(huán) 290
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項,請輸入內容