編輯推薦
知名的Web開發人員和作者。受到國內眾多前端開發人員,如淘寶UED團隊的推崇和推薦。 Stoyan Stefanov:Facebook公司工程師、作傢、演說傢。他經常會在其博客(www.phpied.com)與一些相關會議中就Web開發話題發錶獨到見解。他還運營著其他一些網站,其中包括JSPatterns.com—一個用於探討JavaScript模式的網站
內容易懂,初學者容易上手
內容簡介
JavaScript語言是一種具有高度錶達能力的、基於原型特性的、非常靈活的麵嚮對象程序設計語言。本書著重於介紹JavaScript在麵嚮對象方麵的特性,以為您展示如何去構建強健的、可維護的、功能強大的應用程序及程序庫。
本書是《JavaScript麵嚮對象編程指南》的第二版,全書包括8章和4個附錄。依次介紹瞭JavaScript的發展曆史、基礎性話題(變量、數據類型、數組、循環以及條件錶達式)、函數、對象、原型、繼承的實現、BOM和DOM等。附錄部分包括瞭學習JavaScript編程常用的參考資源。尤其值得一提的是,本書作者是JavaScript設計模式方麵的專傢,他在本書第8章中介紹瞭幾種常用的JavaScript編程模式,這也成為他的另一本重要著作《JavaScript模式》(JavaScript Patterns)奠定瞭基礎。
本書全麵地覆蓋瞭JavaScript語言的OO特性,同時兼顧基礎知識,對初學者來說,是難得的JavaScript佳作。讀者不需要具備任何的JavaScript基礎知識及項目經驗,通過學習這本書,將會在麵試有關JavaScript程序設計的職位時遊刃有餘。
作者簡介
Stoyan Stefanov:Facebook公司工程師、作傢、演說傢。他經常會在博客(www.phpied.com)上與一些相關會議中就Web開發話題發錶獨到見解。他還運營著其他一些網站,其中包括JSPatterns.com——一個專門探討JavaScript模式的網站。Stoyan曾在Yahoo!公司任職,擔任YSlow 2.0架構師職務,並且是圖像優化工具Smush.it的作者。
Kumar Chetan Sharma原本一直緻力於成為一個電子工程師,並夢想著打造一個音響係統。但由於一次偶然的機會,他得到瞭一份與HTML相關的兼職,然後自然地學習瞭CSS和JavaScript,從此便一發不可收拾。要知道在那個年代,JavaScript基本上還隻能用來驗證錶單和製作一些奇特的DHTML效果,且IE6還在世界範圍內獨占鰲頭。但就從那時起,他就已經在開發基於LAMP架構的Web應用瞭。從白色標簽的社交網絡應用,到為電信運營商製作的Web控製麵闆,再到聯網的電子充電設備,都有他開發的身影。目前他在Yahoo!公司的搜索部門從事前端工程師的工作。
目錄
第1章 麵嚮對象的JavaScript 1
1.1 迴顧曆史 2
1.2 瀏覽器的戰爭與復興 3
1.3 分析現狀 4
1.4 展望未來 5
1.5 ECMAScript 5 6
1.6 麵嚮對象的程序設計 6
1.6.1 對象 7
1.6.2 類 8
1.6.3 封裝 8
1.6.4 聚閤 9
1.6.5 繼承 9
1.6.6 多態 10
1.7 OOP小結 10
1.8 訓練環境設置 11
1.8.1 WebKit所附帶的Web審查工具 11
1.8.2 Mac上的JavaScriptCore 12
1.8.3 更多控製颱 13
1.9 本章小結 15
第2章 基本數據類型、數組、循環及條件錶達式 16
2.1 變量 16
2.2 操作符 19
2.3 基本數據類型 23
2.3.1 查看類型操作符—typeof 24
2.3.2 數字 24
2.3.3 字符串 29
2.3.4 布爾值 33
2.3.5 undefined與null 39
2.4 基本數據類型綜述 41
2.5 數組 42
2.5.1 增加、更新數組元素 43
2.5.2 刪除元素 44
2.5.3 數組的數組 44
2.6 條件與循環 45
2.6.1 if條件錶達式 46
2.6.2 else語句 46
2.6.3 代碼塊 47
2.6.4 檢查變量是否存在 48
2.6.5 循環 53
2.7 注釋 58
2.8 本章小結 58
2.9 練習題 59
第3章 函數 61
3.1 什麼是函數 62
3.1.1 調用函數 62
3.1.2 參數 63
3.2 預定義函數 64
3.2.1 parseInt() 65
3.2.2 parseFloat() 67
3.2.3 isNaN() 68
3.2.4 isFinite() 68
3.2.5 URI的編碼與反編碼 69
3.2.6 eval() 69
3.2.7 一點驚喜—alert()函數 70
3.3 變量的作用域 71
3.4 函數也是數據 73
3.4.1 匿名函數 75
3.4.2 迴調函數 75
3.4.3 迴調示例 77
3.4.4 即時函數 79
3.4.5 內部(私有)函數 80
3.4.6 返迴函數的函數 81
3.4.7 能重寫自己的函數 82
3.5 閉包 83
3.5.1 作用域鏈 84
3.5.2 利用閉包突破作用域鏈 85
3.5.3 getter與setter 91
3.5.4 迭代器 92
3.6 本章小結 93
3.7 練習題 93
第4章 對象 95
4.1 從數組到對象 95
4.1.1 元素、屬性、方法與成員 97
4.1.2 哈希錶、關聯型數組 98
4.1.3 訪問對象屬性 98
4.1.4 調用對象方法 100
4.1.5 修改屬性與方法 101
4.1.6 使用this值 102
4.1.7 構造器函數 102
4.1.8 全局對象 104
4.1.9 構造器屬性 106
4.1.10 instanceof操作符 106
4.1.11 返迴對象的函數 107
4.1.12 傳遞對象 108
4.1.13 比較對象 109
4.1.14 Webkit控製颱中的對象 110
4.2 內建對象 111
4.2.1 Object 112
4.2.2 Array 113
4.2.3 Function 117
4.2.4 Boolean 124
4.2.5 Number 125
4.2.6 String 127
4.2.7 Math 132
4.2.8 Date 134
4.2.9 RegExp 139
4.2.10 Error對象 146
4.3 本章小結 149
4.4 練習題 150
第5章 原型 153
5.1 原型屬性 154
5.1.1 利用原型添加方法與屬性 154
5.1.2 使用原型的方法與屬性 155
5.1.3 自身屬性與原型屬性 156
5.1.4 利用自身屬性重寫原型屬性 158
5.1.5 isPrototypeOf()方法 162
5.1.6 神秘的__proto__鏈接 163
5.2 擴展內建對象 164
5.2.1 關於擴展內建對象的討論 166
5.2.2 原型陷阱 167
5.3 本章小結 169
5.4 練習題 170
第6章 繼承 171
6.1 原型鏈 171
6.1.1 原型鏈示例 172
6.1.2 將共享屬性遷移到原型中去 175
6.2 隻繼承於原型 178
6.3 uber—子對象訪問父對象的方式 181
6.4 將繼承部分封裝成函數 183
6.5 屬性拷貝 185
6.6 請小心處理引用拷貝 187
6.7 對象之間的繼承 190
6.8 深拷貝 192
6.9 object() 194
6.10 原型繼承與屬性拷貝的混閤應用 195
6.11 多重繼承 197
6.12 寄生式繼承 199
6.13 構造器藉用 200
6.14 本章小結 203
6.15 案例學習:圖形繪製 206
6.15.1 分析 207
6.15.2 實現 207
6.15.3 測試 211
6.16 練習題 213
第7章 瀏覽器環境 215
7.1 在HTML頁麵中引入JavaScript代碼 215
7.2 概述:BOM與DOM 216
7.3 BOM 217
7.3.1 window對象再探 217
7.3.2 window.navigator 218
7.3.3 控製颱的備忘功能 219
7.3.4 window.location 219
7.3.5 window.history 221
7.3.6 window.frames 222
7.3.7 window.screen 223
7.3.8 window.open()/close() 224
7.3.9 window.moveTo()、window.resizeTo() 225
7.3.10 window.alert()、window.prompt()、window.confirm() 225
7.3.11 window.setTimeout()、window.setInterval() 227
7.3.12 window.document 229
7.4 DOM 229
7.4.1 Core DOM與HTML DOM 231
7.4.2 DOM節點的訪問 233
7.4.3 DOM節點的修改 242
7.4.4 新建節點 245
7.4.5 移除節點 248
7.4.6 隻適用於HTML的DOM對象 250
7.5 事件 254
7.5.1 內聯HTML屬性法 254
7.5.2 元素屬性法 254
7.5.3 DOM的事件監聽器 255
7.5.4 捕捉法與冒泡法 257
7.5.5 阻斷傳播 258
7.5.6 防止默認行為 260
7.5.7 跨瀏覽器的事件監聽器 261
7.5.8 事件類型 262
7.6 XMLHttpRequest對象 263
7.6.1 發送請求 264
7.6.2 處理響應 265
7.6.3 在早於7的IE版本中創建XMLHttpRequest對象 266
7.6.4 A代錶異步 267
7.6.5 X代錶XML 267
7.6.6 實例示範 268
7.7 本章小結 270
7.8 練習題 272
第8章 編程模式與設計模式 274
8.1 編程模式 275
8.1.1 行為隔離 275
8.1.2 命名空間 278
8.1.3 初始化分支 281
8.1.4 惰性初始 282
8.1.5 配置對象 283
8.1.6 私有屬性和方法 285
8.1.7 特權函數 286
8.1.8 私有函數的公有化 286
8.1.9 即時函數 287
8.1.10 模塊 288
8.1.11 鏈式調用 289
8.1.12 JSON 290
8.2 設計模式 292
8.2.1 單件模式1 292
8.2.2 單件模式2 293
8.2.3 工廠模式 294
8.2.4 裝飾器模式 296
8.2.5 觀察者模式 299
8.3 本章小結 302
附錄A 保留字 303
附錄B 內建函數 307
附錄C 內建對象 310
附錄D 正則錶達式 347
前言/序言
JavaScript麵嚮對象編程指南(第2版) [Object-Oriented JavaScript] 下載 mobi epub pdf txt 電子書 格式
JavaScript麵嚮對象編程指南(第2版) [Object-Oriented JavaScript] 下載 mobi pdf epub txt 電子書 格式 2024
JavaScript麵嚮對象編程指南(第2版) [Object-Oriented JavaScript] mobi epub pdf txt 電子書 格式下載 2024