- 軟件大小:7.87M
- 軟件語言:中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費軟件 / 電子圖書
- 更新時間:2016-05-21 13:40
- 運行環(huán)境:WinAll, WinXP
- 軟件等級:
- 軟件廠商:
- 官方網(wǎng)站:http://www.siawh.com
3.90M/中文/10.0
154KB/中文/10.0
821KB/中文/10.0
42.01M/中文/2.0
156.28M/中文/10.0
javascript設(shè)計模式與開發(fā)實踐pdf是一款專門為javascript愛好者和學(xué)習(xí)者提供的pdf版本,讓用戶更好更快捷地使用pdf閱讀器和wps文件進行電腦閱讀,讓你的javascript知識快速提升,有需要的朋友們歡迎下載!
本書在尊重《設(shè)計模式》原意的同時,針對JavaScript語言特性全面介紹了更適合JavaScript程序員的了16個常用的設(shè)計模式,講解了JavaScript面向?qū)ο蠛秃瘮?shù)式編程方面的基礎(chǔ)知識,介紹了面向?qū)ο蟮脑O(shè)計原則及其在設(shè)計模式中的體現(xiàn),還分享了面向?qū)ο缶幊碳记珊腿粘i_發(fā)中的代碼重構(gòu)。本書將教會你如何把經(jīng)典的設(shè)計模式應(yīng)用到JavaScript語言中,編寫出優(yōu)美高效、結(jié)構(gòu)化和可維護的代碼。
第一部分 基礎(chǔ)知識
第1章 面向?qū)ο蟮腏avaScript
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 小結(jié) 58
第二部分 設(shè)計模式
第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 小結(jié) 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 小結(jié) 87
第6章 代理模式
6.1 第一個例子——小明追MM的故事 88
6.2 保護代理和虛擬代理 91
6.3 虛擬代理實現(xiàn)圖片預(yù)加載 91
6.4 代理的意義 93
6.5 代理和本體接口的一致性 94
6.6 虛擬代理合并HTTP 請求 95
6.7 虛擬代理在惰性加載中的應(yīng)用 97
6.8 緩存代理 99
6.9 用高階函數(shù)動態(tài)創(chuàng)建代理 100
6.10 其他代理模式 101
6.11 小結(jié) 102
第7章 迭代器模式
7.1 JQuery 中的迭代器 103
7.2 實現(xiàn)自己的迭代器 104
7.3 內(nèi)部迭代器和外部迭代器 104
7.4 迭代類數(shù)組對象和字面量對象 106
7.5 倒序迭代器 106
7.6 中止迭代器 107
7.7 迭代器模式的應(yīng)用舉例 107
7.8 小結(jié) 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 真實的例子——網(wǎng)站登錄 115
8.8 全局的發(fā)布—訂閱對象 117
8.9 模塊間通信 119
8.10 必須先訂閱再發(fā)布嗎 120
8.11 全局事件的命名沖突 121
8.12 JavaScript實現(xiàn)發(fā)布—訂閱模式的便利性 124
8.13 小結(jié) 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 小結(jié) 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 小結(jié) 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 小結(jié) 164
第12章 享元模式
12.1 初識享元模式 165
12.2 內(nèi)部狀態(tài)與外部狀態(tài) 166
12.3 享元模式的通用結(jié)構(gòu) 167
12.4 文件上傳的例子 167
12.5 享元模式的適用性 173
12.6 再談內(nèi)部狀態(tài)和外部狀態(tài) 173
12.7 對象池 175
12.8 小結(jié) 178
第13章 職責(zé)鏈模式
13.1 現(xiàn)實中的職責(zé)鏈模式 179
13.2 實際開發(fā)中的職責(zé)鏈模式 180
13.3 用職責(zé)鏈模式重構(gòu)代碼 181
13.4 靈活可拆分的職責(zé)鏈節(jié)點 183
13.5 異步的職責(zé)鏈 184
13.6 職責(zé)鏈模式的優(yōu)缺點 185
13.7 用AOP 實現(xiàn)職責(zé)鏈 186
13.8 用職責(zé)鏈模式獲取文件上傳對象 187
13.9 小結(jié) 188
第14章 中介者模式
14.1 現(xiàn)實中的中介者 190
14.2 中介者模式的例子——泡泡堂游戲 191
14.3 中介者模式的例子——購買商品 199
14.4 小結(jié) 207
第15章 裝飾者模式
15.1 模擬傳統(tǒng)面向?qū)ο笳Z言的裝飾者模式 210
15.2 裝飾者也是包裝器 211
15.3 回到JavaScript 的裝飾者 212
15.4 裝飾函數(shù) 212
15.5 用AOP 裝飾函數(shù) 214
15.6 AOP 的應(yīng)用實例 216
15.7 裝飾者模式和代理模式 222
15.8 小結(jié) 223
第16章 狀態(tài)模式
16.1 初識狀態(tài)模式 224
16.2 狀態(tài)模式的定義 230
16.3 狀態(tài)模式的通用結(jié)構(gòu) 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)模式和策略模式的關(guān)系 241
16.9 JavaScript版本的狀態(tài)機 242
16.10 表驅(qū)動的有限狀態(tài)機 244
16.11 實際項目中的其他狀態(tài)機 245
16.12 小結(jié) 245
第17章 適配器模式
17.1 現(xiàn)實中的適配器 246
17.2 適配器模式的應(yīng)用 247
17.3 小結(jié) 250
第三部分 設(shè)計原則和編程技巧
第18章 單一職責(zé)原則
18.1 設(shè)計模式中的SRP原則 252
18.2 何時應(yīng)該分離職責(zé) 256
18.3 違反SRP原則 256
18.4 SRP 原則的優(yōu)缺點 257
第19章 最少知識原則
19.1 減少對象之間的聯(lián)系 258
19.2 設(shè)計模式中的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 設(shè)計模式中的開放—封閉原則 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章 代碼重構(gòu)
22.1 提煉函數(shù) 282
22.2 合并重復(fù)的條件片段 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 合理使用鏈?zhǔn)秸{(diào)用 288
22.10 分解大型類 289
22.11 用return退出多重循環(huán) 290
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項,請輸入內(nèi)容