編輯推薦
本書作者是大名鼎鼎的Nicholas Zakas。《JavaScript高級程序設計》、《Ajax高級程序設計》和《高性能JavaScript》、《編寫可維護的JavaScript》的作者。在業界很有知名度和影響力,暢銷書作者。
《JavaScript啓示錄》和《jQuery Cookbook》作者Cody Lindley作序推薦。
本書關注麵嚮對象的原理和ES5對象新特性,其目的是幫助那些已經熟知麵嚮對象編程的讀者掌握這些概念是如何在JavaScript中工作的。
本書內容簡潔而精妙,通過本書,你將學到理解和專業編程JavaScript所需知的一切。
本書適閤熟悉麵嚮對象編程的概念並希望將其應用於JavaScript的開發者閱讀,也適閤JavaScript新手作為學習參考。
內容簡介
關注麵嚮對象的原理和ES5對象新特性,目的是幫助那些已經熟知麵嚮對象編程的讀者掌握這些概念是如何在JavaScript中工作的。
內容簡潔而精妙。全書共6章,分彆深入探討瞭原始類型和引用類型、函數、對象、構造函數和原型對象、繼承和對象模式等主題和特性。在本書中,你將學到JavaScript獨特的麵嚮對象的編程方式;拋棄類的概念和基於類的繼承,學習基於原型的繼承和構造函數。你將學會如何創建對象、定義自己的類型、使用繼承以及其他各種操作來充分使用對象。總而言之,你將學到JavaScript語言並進行專業編程所需熟知的一切。
適閤熟悉麵嚮對象編程的概念並希望將其應用於JavaScript的開發者閱讀,也適閤JavaScript新手學習參考。
作者簡介
Nicholas Zakas,是Box公司的一位軟件工程師。他因關於JavaScript極佳時間的寫作和演講而知名。在此之前,作為Yahoo!主頁的前端工程師,他在雅虎工作瞭5年。他寫瞭數本JavaScript技術圖書,包括《編寫可維護的JavaScript》和《JavaScript高級程序設計》。
內頁插圖
精彩書評
這是一本關注麵嚮對象的原理和ES5對象新特性的書。作為一個作者,我堅信這本書就是我們在等待腳本環境更新至ES6之前必須一讀的。
——《JavaScript啓示錄》和《jQuery Cookbook》作者Cody Lindley
你要是用過C++或Java這樣的傳統麵嚮對象語言,JavaScript可能看上去一點都不麵嚮對象。JavaScript沒有類的概念,而你甚至不需要定義任何對象就可以開始寫代碼。但是彆被這些假象濛蔽瞭,實際上JavaScript是一門具有驚人威力且極具錶達能力的麵嚮對象的語言,它賦予你很大的設計決策權。
本書深入探討瞭JavaScript的對象機製,揭示瞭這一語言對於繼承以及其他關鍵特性的獨特實現。
在本書中,你將會學到:
原始值和引用值的區彆;
JavaScript函數為何如此獨特;
創建對象的各種方法;
如何定義你自己的構造函數;
如何理解和使用原型對象;
類型和對象的繼承模式。
本書能夠讓有一定經驗的開發者更深入地理解JavaScript語言,揭示JavaScript對象背後的秘密,從而幫助你寫齣更加清晰、靈活、高效的代碼。
目錄
第1章原始類型和引用類型
1.1什麼是類型
1.2原始類型
1.2.1鑒彆原始類型
1.2.2原始方法
1.3引用類型
1.3.1創建對象
1.3.2對象引用解除
1.3.3添加刪除屬性
1.4內建類型實例化
1.4.1字麵形式
1.4.2對象和數組字麵形式
1.4.3函數字麵形式
1.4.4正則錶達式字麵形式
1.5訪問屬性
1.6鑒彆引用類型
1.7鑒彆數組
1.8原始封裝類型
1.9總結
第2章函數
2.1聲明還是錶達式
2.2函數就是值
2.3參數
2.4重載
2.5對象方法
2.5.1this對象
2.5.2改變this
2.6總結
第3章理解對象
3.1定義屬性
3.2屬性探測
3.3刪除屬性
3.4屬性枚舉
3.5屬性類型
3.6屬性特徵
3.6.1通用特徵
3.6.2數據屬性特徵
3.6.3訪問器屬性特徵
3.6.4定義多重屬性
3.6.5獲取屬性特徵
3.7禁止修改對象
3.7.1禁止擴展
3.7.2對象封印
3.7.3對象凍結
3.8總結
第4章構造函數和原型對象
4.1構造函數
4.2原型對象
4.2.1[[Prototype]]屬性
4.2.2在構造函數中使用原型對象
4.2.3改變原型對象
4.2.4內建對象的原型對象
4.3總結
第5章繼承
5.1原型對象鏈和Object.prototype
5.1.1繼承自Object.prototype的方法
5.1.2修改Object.prototype
5.2對象繼承
5.3構造函數繼承
5.4構造函數竊取
5.5訪問父類方法
5.6總結
第6章對象模式
6.1私有成員和特權成員
6.1.1模塊模式
6.1.2構造函數的私有成員
6.2混入
6.3作用域安全的構造函數
6.4總結
索引
前言/序言
大多數開發者將麵嚮對象的編程聯想為那些在學校中學到的基於類的語言,比如C++和Java。在用這些語言完成任務之前,必須先創建類,哪怕隻是寫一個簡單的命令行程序。目前業界常用的設計模式也強調瞭基於類的概念。JavaScript不使用類,這也是人們在學瞭C++或Java之後再學習JavaScript時感到睏惑的原因。
麵嚮對象的語言有如下幾種特性。
封裝數據可以和操作數據的功能組織在一起。這就是對象的定義,十分簡單。
聚閤一個對象能夠引用另一個對象。
繼承一個新創建的對象和另一個對象擁有同樣的特性,而無需顯式復製其功能。
多態一個接口可被多個對象實現。
JavaScript擁有上述全部特性,因為語言本身沒有類的概念,所以某些特性可能不是以你所期望的方式實現的。乍一看,一個JavaScript程序可能像是一個用C來編寫的麵嚮過程的程序。如果寫一個函數並傳遞一些參數,就有瞭一個看上去沒有對象也可工作的腳本。但是仔細觀察,你就會在點號的使用上發現對象的存在。
很多麵嚮對象的語言使用點號來訪問對象的屬性和方法,JavaScript也不例外。但是你永遠不需要在JavaScript中寫一個類定義,導入一個包或包含一個頭文件。你隻是用你需要的數據類型開始編寫代碼,然後有無數種方法可以把它們組織在一起。可以用麵嚮過程的方式編寫JavaScript,但它真正的威力是在你利用其麵嚮對象的特性時纔能展現的。而這就是本書要告訴你的。
不要搞錯:你在傳統的麵嚮對象的語言中學到的很多概念都不一定適用於JavaScript。初學者往往對此迷惑不已。你在閱讀的過程中會迅速發現JavaScript的弱類型特性允許你用比其他語言更少的代碼完成同樣的任務。你無需預先設計好類就可以開始編寫代碼。需要一個具有某個字段的對象瞭?隨時隨地都可創建。忘瞭給那個對象添加一個方法?沒關係——以後補上。
在本書中,你將學到JavaScript獨特的麵嚮對象的編程方式。拋棄類的概念和基於類的繼承,學習基於原型的繼承和功能類似的構造函數。你將學會如何創建對象,定義自己的類型,使用繼承以及其他各種操作來充分使用對象。一句話,你將從專業級彆理解和使用JavaScript程序所需知道的一切。享受它吧!
本書目標讀者
本書的目的是幫助那些已經熟知麵嚮對象編程的讀者掌握這些概念是如何在JavaScript中工作的。隻要你熟悉Java、C#或其他麵嚮對象的編程語言,那麼本書就是為你而著。尤其是以下3種人群。
●熟悉麵嚮對象編程的概念並希望將其應用於JavaScript的開發者。
●希望更有效地組織代碼的網頁應用程序開發者和Node.js開發者。
●想深入瞭解JavaScript的開發新手。
本書不是寫給那些從未編寫過JavaScript的新手的。你需要對如何編寫和執行JavaScript代碼有一個清楚的認識纔能跟得上。
概覽
第1章“原始類型和引用類型”介紹瞭JavaScript中的兩種數據類型:原始類型和引用類型。你會學到它們之間的區彆,知道為什麼理解它們之間的區彆對於理解整個JavaScript非常重要。
第2章“函數”解釋瞭JavaScript函數的輸入和輸齣。函數是JavaScript的一等公民,它們使得JavaScript成為一門有趣的語言。
第3章“理解對象”深度探索JavaScript對象的組成。JavaScript對象的行為和其他語言的對象不同,深入瞭解對象的工作原理是掌握JavaScript語言的關鍵。
第4章“構造函數和原型對象”將目光聚焦於構造函數,拓展瞭之前對函數的討論。所有的構造函數都是函數,但它們在使用上有一點區彆。本章在探索這些區彆之外還討論瞭如何創建自定義類型。
第5章“繼承”解釋瞭JavaScript中的繼承是如何實現的。JavaScript裏沒有類,卻不代錶JavaScript裏不能繼承。在本章,你將學到原型繼承以及它和類繼承的區彆。
第6章“對象模式”帶你瀏覽常用的對象模式。JavaScript擁有很多不同的方式來創建和組閤對象,本章為你介紹其中最流行的幾種模式。
幫助與支持
如果你對本書有任何疑問、評論或其他反饋上的郵件列錶。
JavaScript麵嚮對象精要 epub pdf mobi txt 電子書 下載 2024
JavaScript麵嚮對象精要 下載 epub mobi pdf txt 電子書