JavaScript麵嚮對象編程指南(第2版) [Object-Oriented JavaScript]

JavaScript麵嚮對象編程指南(第2版) [Object-Oriented JavaScript] 下載 mobi epub pdf 電子書 2025

[加拿大] Stoyan Stefanov,[印] Kumar Chetan Sharma 著,陸禹淳,淩傑 譯
圖書標籤:
  • JavaScript
  • 麵嚮對象編程
  • OOP
  • JavaScript設計模式
  • 前端開發
  • Web開發
  • 第2版
  • Object-Oriented JavaScript
  • 原型鏈
  • 繼承
  • 封裝
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 人民郵電齣版社
ISBN:9787115372703
版次:2
商品編碼:11642532
品牌:異步圖書
包裝:平裝
外文名稱:Object-Oriented JavaScript
開本:16開
齣版時間:2015-01-01
用紙:膠版紙
頁數:352
正文語種:中文

具體描述

編輯推薦

知名的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版)》—— 駕馭現代JavaScript的麵嚮對象精髓 在飛速發展的Web開發領域,JavaScript已然成為構建交互式、動態化應用的基石。而麵嚮對象編程(OOP)作為一種強大的編程範式,更是理解和駕馭復雜JavaScript項目的不二法門。第二版《JavaScript麵嚮對象編程指南》深入剖析瞭JavaScript麵嚮對象的精髓,為開發者提供瞭一套係統、前沿的知識體係,助力他們在實際開發中構建更優雅、可維護、可擴展的代碼。 本書不僅僅是對JavaScript語言特性的羅列,更是從設計理念、模式應用和實踐技巧的深度齣發,引導讀者構建一種麵嚮對象的思維方式。它關注的是如何利用JavaScript特有的原型鏈、閉包、模塊化等機製,實現類class、繼承、封裝、多態等麵嚮對象的關鍵概念,並將其融會貫通到現代Web應用程序的開發中。 核心理念與精髓剖析: 本書的開篇便著力於夯實麵嚮對象編程的基礎。它清晰地闡述瞭麵嚮對象編程的四大基本原則——封裝、繼承、多態、抽象,並結閤JavaScript的實際情況,深入淺齣地解釋瞭這些原則如何在JavaScript中得以實現。 封裝(Encapsulation): 開發者將數據(屬性)和操作數據的方法(行為)捆綁在一起,形成一個獨立的單元——對象。本書會講解如何利用JavaScript的函數、閉包以及ES6的class語法,有效地實現屬性的隱藏和方法的公開,從而保護對象內部狀態的完整性,降低代碼間的耦閤度。我們將探討如何通過getter和setter來控製屬性的訪問,以及如何利用立即執行函數錶達式(IIFE)和模塊模式來創建私有作用域,實現真正的封裝。 繼承(Inheritance): 對象之間可以共享和擴展彼此的屬性和方法,從而避免代碼的重復編寫,提高代碼的可重用性。本書會詳細講解JavaScript中原型鏈的工作原理,這是JavaScript實現繼承的核心機製。我們將深入研究`prototype`屬性、`__proto__`屬性以及`Object.create()`方法,並對比ES6引入的`class`語法如何提供瞭一種更接近傳統麵嚮對象語言的繼承方式,同時也會揭示其背後依然是原型鏈在發揮作用。 多態(Polymorphism): 允許不同類的對象對同一消息(方法調用)做齣響應,即“一個接口,多種實現”。本書將探討JavaScript在函數式編程和原型繼承方麵的特性如何天然支持多態,例如通過鴨子類型(Duck Typing)和接口的抽象來實現。讀者將學習如何設計靈活的函數,使其能夠處理不同類型的對象,從而編寫齣更具適應性的代碼。 抽象(Abstraction): 隱藏復雜的實現細節,隻嚮用戶暴露必要的接口。本書將引導開發者如何通過接口、抽象類(雖然JavaScript沒有原生支持,但可以通過模式模擬)以及設計模式來定義清晰的API,降低使用者理解和使用代碼的難度,專注於業務邏輯。 JavaScript的麵嚮對象獨特之處: 與許多傳統的基於類的麵嚮對象語言不同,JavaScript的麵嚮對象模型是基於原型(Prototype-based)的。本書將深入探索JavaScript原型鏈的奧秘,解釋對象是如何通過原型鏈查找屬性和方法的。我們將詳細講解: 構造函數(Constructor Functions): 如何利用函數創建對象,並理解`this`關鍵字在構造函數中的指嚮。 `prototype`對象: 每個函數都擁有一個`prototype`屬性,它是一個對象,所有通過該構造函數創建的實例將共享這個`prototype`對象上的屬性和方法。 原型鏈(Prototype Chain): 對象之間通過`[[Prototype]]`(內部槽,通常可以通過`__proto__`訪問)連接起來,形成一個鏈條,當訪問一個對象的屬性或方法時,如果對象自身沒有,就會沿著原型鏈嚮上查找,直到找到為止,或者到達鏈的頂端(`Object.prototype`)。 `Object.create()`: 一種更直接的原型繼承方式,允許開發者創建一個新對象,並將其原��設置為另一個現有對象。 ES6的`class`語法: 雖然`class`語法提供瞭一種更清晰、更易於理解的麵嚮對象寫法,但本書會揭示其本質仍然是基於原型的,幫助開發者理解“語法糖”背後的機製,從而更深入地掌握JavaScript的麵嚮對象特性。 現代JavaScript麵嚮對象實踐: 隨著ECMAScript標準的不斷更新,JavaScript在麵嚮對象編程方麵也湧現齣許多新的特性和最佳實踐。本書將緊跟時代步伐,重點講解: ES6+類(Class)的深入應用: 不僅介紹`class`的基本語法,更會深入探討靜態方法、繼承、`super`關鍵字的使用、getter和setter的實現,以及如何利用`class`來構建更清晰、更易於維護的代碼結構。 模塊化(Module): 現代JavaScript開發離不開模塊化。本書將講解ES6模塊(`import`/`export`)以及CommonJS等模塊化規範,說明如何將麵嚮對象的思想應用到模塊的設計中,實現代碼的組織、復用和解耦。 設計模式(Design Patterns): 設計模式是解決常見軟件設計問題的成熟方案。本書將結閤JavaScript的麵嚮對象特性,詳細介紹多種經典且實用的設計模式,例如: 工廠模式(Factory Pattern): 提供一個創建對象的接口,但由子類決定實例化哪一個類。 單例模式(Singleton Pattern): 確保一個類隻有一個實例,並提供一個全局訪問點。 觀察者模式(Observer Pattern): 定義對象間的一對多依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都會得到通知並自動更新。 裝飾器模式(Decorator Pattern): 動態地給一個對象添加一些額外的職責。 策略模式(Strategy Pattern): 定義一係列算法,把它們封裝起來,並使它們可以相互替換。 外觀模式(Facade Pattern): 為一組復雜的子係統提供一個一緻的接口。 組閤模式(Composite Pattern): 將對象組閤成樹形結構以錶示“部分-整體”的層次結構。 原型模式(Prototype Pattern): 通過剋隆現有對象來創建新對象。 這些模式的講解將不僅僅是理論介紹,更會提供大量的JavaScript代碼示例,幫助讀者理解如何在實際項目中應用這些模式來解決具體問題。 提升代碼質量與開發效率: 本書強調的不僅僅是“如何寫”麵嚮對象代碼,更是“為何如此寫”。通過深入理解麵嚮對象設計的原則和模式,開發者能夠: 提高代碼的可讀性和可維護性: 結構清晰、邏輯分明的麵嚮對象代碼更容易被理解和修改,從而降低維護成本。 增強代碼的復用性: 通過繼承、組閤和模塊化,可以有效地復用已有的代碼,減少重復勞動。 提升代碼的可擴展性: 基於良好的麵嚮對象設計,新的功能可以更容易地被添加,而不會對現有代碼産生大的影響。 降低bug發生的幾率: 封裝和模塊化有助於減少代碼間的耦閤,降低潛在的相互影響,從而減少bug的産生。 構建更復雜的應用程序: 掌握麵嚮對象編程是構建大型、復雜Web應用程序的必備技能。 目標讀者: 本書適閤所有希望深入理解JavaScript麵嚮對象編程的開發者。無論您是初學者,希望建立堅實的編程基礎;還是有一定經驗的開發者,希望提升代碼質量和設計能力;亦或是正在轉型到JavaScript生態的開發者,本書都能為您提供寶貴的指導。 結語: 《JavaScript麵嚮對象編程指南(第2版)》是一本集理論深度、實踐指導和前沿特性於一體的權威著作。它將帶領讀者穿越JavaScript麵嚮對象的復雜世界,掌握構建健壯、高效、可維護的現代Web應用程序的必備技能。通過本書的學習,您將能夠更自信地駕馭JavaScript,寫齣更具藝術性和專業性的代碼。

用戶評價

評分

這本書的排版和語言風格都非常符閤我的閱讀習慣。它不像有些技術書籍那樣枯燥乏味,而是用一種比較輕鬆易懂的語言來闡述復雜的概念。而且,書中穿插瞭一些作者的個人見解和行業經驗,這讓閱讀過程更加生動有趣,也讓我學到瞭很多書本上沒有直接寫明的“軟技能”。總的來說,這是一本集理論與實踐於一身的優秀技術書籍,強烈推薦給所有對JavaScript麵嚮對象編程感興趣的開發者。

評分

這次的重版,相比之前的版本,我覺得在內容的組織上更加順暢瞭。作者似乎花瞭不少心思來梳理和優化知識點之間的邏輯關係,這一點對於我們這些需要深入理解JavaScript底層原理的開發者來說,簡直是福音。比如,我在閱讀關於原型鏈繼承的部分時,感覺整個概念的講解脈絡更加清晰,那些容易混淆的細節也得到瞭更充分的解釋,不再是零散的知識點堆砌,而是形成瞭一個完整的知識體係,讓人更容易理解和掌握。

評分

對於那些已經有一定JavaScript基礎,想要進一步提升自己編程能力和設計思維的開發者來說,這本書絕對是必讀之選。它不僅僅是講瞭怎麼寫代碼,更是探討瞭“為什麼”要這麼寫,以及如何寫齣更健壯、更易於維護和擴展的代碼。書中涉及到的設計模式,比如工廠模式、單例模式等等,都通過生動的案例進行瞭講解,讓我深刻理解瞭它們在實際項目中的價值和應用場景,這對於我今後的架構設計有很大的幫助。

評分

這本書的封麵設計挺吸引人的,那種深藍色配上抽象的JavaScript代碼元素,給人一種專業且現代的感覺。拿到手的時候,紙張的質感也很不錯,拿在手裏很有分量,不是那種廉價的印刷品。我尤其喜歡它印刷的字體大小和行間距,長時間閱讀也不會覺得眼睛疲勞,這點對於一本技術書籍來說非常重要。包裝也挺仔細的,沒有磕碰或摺損的痕跡,看得齣齣版方在細節上很用心。

評分

我是一名剛入行不久的JavaScript開發者,對於麵嚮對象這個概念一直有些模糊。市麵上很多教程要麼講得太淺,要麼就是直接丟一大堆概念,讓我無從下手。但是這本書,真的讓我眼前一亮!它從最基礎的概念講起,一步步引導讀者理解什麼是對象,什麼是類,以及如何在JavaScript中實現麵嚮對象的設計。舉例非常貼切,很多例子都是我日常開發中經常遇到的場景,讀起來感覺特彆親切,也更容易將學到的知識應用到實際工作中。

評分

很好!!!不錯!!!

評分

充實一下自己的知識

評分

書好,但是裏麵的內容太過簡單,適閤初學者

評分

很好,不錯,京東一如既往地給力,快遞超級快,晚上十一點下的單,第二天十一點就到瞭,哈哈,漂亮,給力!

評分

一般都是些基礎

評分

不錯不錯 經典

評分

此用戶未及時評價,係統默認好評。

評分

一口氣買瞭好幾本,快遞給力,印刷舒服,贊

評分

京東做活動買的,書都很薄,看上去不會容易疲倦。這麼多書,可以看很久瞭。希望可以通過看書牢牢掌握JavaScript

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有