javascript
javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用
對象、類的定義與使用
對象與類是面向對象程序設計語言教學過程中不可避免需要講解的內容之一。很多人將兩者混為一談,簡單認為對象就是類,類就是對象。實際上深入分析的話,對象與類的區別還是較為明顯的。本文主要介紹JavaScript中類與對象的概念區別及類的定義與使用。
Object對象與Class類
對象與類是面向對象的核心,不同教材對對象與類概念進行了不同闡述。一般理解為類的實例化結果即為對象。實際上深入分析的話,對象與類的區別還是較為明顯的。歸納起來,類是對客觀事物的描述與抽象,對象是類的實例。客觀事物的抽象與描述是指抽取某類事物共同具有的狀態與行為構成類。在程序設計語言中所抽取的狀態與行為,即為類的屬性(Attributes)與方法(method)。下圖使用手機為例對象與類關系描述。
手機為例說明對象與類
使用手機對類與對象說明描述如上所示,其中華為、蘋果、小米手機等現實世界中的物品,可直接表示為計算機中具體的對象。所有的手機對象抽取出共有的屬性與方法就構成了抽象的數據類型,我們稱為類。從類到對象的過程稱為實例化,從對象到類可以理解為抽象與封裝。
ECMAScript 5(ES5)類的定義
ECMAScript標準是JavaScript程序語言所遵循的規則與標準,在ECMAScript5及之前標準下的JavaScript語言中沒有提供關于類Class相關標準與要求。在該標準下只能通過模擬實現類。目前使用模擬方法構造類方法較多,本文主要介紹兩種常用方法:
1、Object對象原型法
在JavaScript中基本上所有的對象都是Object對象的實例,都繼承了Object對象的方法與屬性。通過使用Object對象可以創建用戶自定義對象,并且可以通過prototype屬性進行對象屬性及方法的設置。以下以手機為例進行說明。定義一個手機對象,該對象屬性包括品牌名字、價格兩個屬性,還具有一個輸出顯示手機品牌價格信息的方法。通過使用對象原型法編寫實現代碼如下圖:
對象原型法實現類示例
如上圖所示,我們為Object對象添加了兩個屬性uname與price分別標書手機品牌與價格,添加了兩個方法分別完成賦值與輸出顯示。完成之后對Object進行了實例化操作,huawei與iphone就是實例化之后的對象。
2、構造函數法
構造函數法相對原型方法較更加容易理解,我們將一個函數直接實例化成類的對象,以此實現對類的模擬操作。如上例所示手機類及實例化對象,我們亦可以改用構造函數法進行模擬類對象的實現。主要實現代碼描述如下:
構造函數實例化模擬類對象
構造函數實例化實現對象創建實例如上圖所示,使用這種方法我們也可以快速設計模擬類的實例化實現。上例中的huawei與iphone可以看成類的實例化對象。
ECMAScript 6(ES6)類定義
盡管在ES5中沒有使用class實現類的定義,但是class作為關鍵字進行了保留。在2015年推出的ES6版本中正式將Class作為對象模板,用于實現類的定義,盡管這里的Class本質上仍然是函數。使用Class實現類的定義基本語法描述如下:
Class定義語法
class定義基本語法描述如上圖所示,借助class關鍵字,我們可以定義類并能夠設置其屬性與方法。針對前文所舉例手機類、屬性及方法,我們可以使用class進行定義。定義與使用描述如下圖:
JavaScript類的定義與使用
使用Class關鍵字定義類,使得JavaScript中的類更加符合面向對象程序語言要求。從屬性、方法等結構方面與我們真正意義上的類更加接近。
本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區回復。更多程序設計相關教程及實例分享,期待大家關注與閱讀!JavaScript基礎教程系列教程鏈接如下:
JavaScript基礎教程(八)Array數組對象定義與訪問
JavaScript基礎教程(七)函數的編寫與使用
JavaScript基礎教程(六)流程控制之循環語句
JavaScript基礎教程(五)流程控制之條件語句
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java学习路线_java学习路线_我的
- 下一篇: feign直接走熔断_四、Spring