如何理解javascript中類和對象這兩個概念?


首先,對象的定義大致如下:

對象(object)是JavaScript的核心概念,也是最重要的數據類型。JavaScript的所有數據都可以被視為對象。

簡單說,所謂對象,就是一種無序的數據集合,由若干個“鍵值對”(key-value)構成。

var o = {
    p: "Hello World"
};

 

上面代碼中,大括號就定義了一個對象,它被賦值給變量o。這個對象內部包含一個鍵值對(又稱為“成員”),p是“鍵名”(成員的名稱),字符串“Hello World”是“鍵值”(成員的值)。鍵名與鍵值之間用冒號分隔。如果對象內部包含多個鍵值對,每個鍵值對之間用逗號分隔。

我們從兩個層次來理解。

(1)“對象”是單個實物的抽象。

一本書、一輛汽車、一個人都可以是“對象”,一個數據庫、一張網頁、一個與遠程服務器的連接也可以是“對象”。當實物被抽象成“對象”,實物之間的關系就變成了“對象”之間的關系,從而就可以模擬現實情況,針對“對象”進行編程。

(2)“對象”是一個容器,封裝了“屬性”(property)和“方法”(method)。

所謂“屬性”,就是對象的狀態;所謂“方法”,就是對象的行為(完成某種任務)。比如,我們可以把動物抽象為animal對象,“屬性”記錄具體是那一種動物,“方法”表示動物的某種行為(奔跑、捕獵、休息等等)。

其次,典型的面向對象編程語言(比如C++和Java),存在“類”(class)這樣一個概念。所謂“類”就是對象的模板,對象就是“類”的實例。JavaScript語言沒有“類”,而改用構造函數(constructor)作為對象的模板。

前面說過,“對象”是單個實物的抽象。所以,通常需要一個模板,表示某一類實物的共同特征,然后“對象”根據這個模板生成。

所謂“構造函數”,就是專門用來生成“對象”的函數。它提供模板,作為對象的基本結構。一個構造函數,可以生成多個對象,這些對象都有相同的結構。

最后,還是模糊的話,建議參考這本在線教程:JavaScript 標准參考教程(alpha)

 

鏈接:https://www.zhihu.com/question/23344518/answer/24291199


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM