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