天天看點

《JavaScript面向對象精要》——導讀

《JavaScript面向對象精要》——導讀

前言

大多數開發者将面向對象的程式設計聯想為那些在學校中學到的基于類的語言,比如c++和java。在用這些語言完成任務之前,必須先建立類,哪怕隻是寫一個簡單的指令行程式。目前業界常用的設計模式也強調了基于類的概念。javascript不使用類,這也是人們在學了c++或java之後再學習javascript時感到困惑的原因。

面向對象的語言有如下幾種特性。

封裝 資料可以和操作資料的功能組織在一起。這就是對象的定義,十分簡單。

聚合 一個對象能夠引用另一個對象。

繼承 一個新建立的對象和另一個對象擁有同樣的特性,而無需顯式複制其功能。

多态 一個接口可被多個對象實作。

javascript擁有上述全部特性,因為語言本身沒有類的概念,是以某些特性可能不是以你所期望的方式實作的。乍一看,一個javascript程式可能像是一個用c來編寫的面向過程的程式。如果寫一個函數并傳遞一些參數,就有了一個看上去沒有對象也可工作的腳本。但是仔細觀察,你就會在點号的使用上發現對象的存在。

很多面向對象的語言使用點号來通路對象的屬性和方法,javascript也不例外。但是你永遠不需要在javascript中寫一個類定義,導入一個包或包含一個頭檔案。你隻是用你需要的資料類型開始編寫代碼,然後有無數種方法可以把它們組織在一起。可以用面向過程的方式編寫javascript,但它真正的威力是在你利用其面向對象的特性時才能展現的。而這就是本書要告訴你的。

不要搞錯:你在傳統的面向對象的語言中學到的很多概念都不一定适用于javascript。初學者往往對此迷惑不已。你在閱讀的過程中會迅速發現javascript的弱類型特性允許你用比其他語言更少的代碼完成同樣的任務。你無需預先設計好類就可以開始編寫代碼。需要一個具有某個字段的對象了?随時随地都可建立。忘了給那個對象添加一個方法?沒關系——以後補上。

在本書中,你将學到javascript獨特的面向對象的程式設計方式。抛棄類的概念和基于類的繼承,學習基于原型的繼承和功能類似的構造函數。你将學會如何建立對象,定義自己的類型,使用繼承以及其他各種操作來充分使用對象。一句話,你将從專業級别了解和使用javascript程式所需知道的一切。享受它吧!

[第1章 原始類型和引用類型

<a href="https://yq.aliyun.com/articles/91797">1.2 原始類型</a>

<a href="https://yq.aliyun.com/articles/91803">1.3 引用類型</a>

<a href="https://yq.aliyun.com/articles/91806">1.4 内建類型執行個體化</a>

<a href="https://yq.aliyun.com/articles/91809">1.5 通路屬性</a>

<a href="https://yq.aliyun.com/articles/91813">1.6 鑒别引用類型</a>

<a href="https://yq.aliyun.com/articles/91819">1.7 鑒别數組</a>

<a href="https://yq.aliyun.com/articles/91824">1.8 原始封裝類型</a>

<a href="https://yq.aliyun.com/articles/91827">1.9 總結</a>

第2章 函數

第3章 了解對象

第4章 構造函數和原型對象

第5章 繼承

第6章 對象模式

索引