日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript ES6 Class類實現(xiàn)原理詳解

瀏覽:149日期:2023-10-29 17:03:31

JavaScript ES6之前的還沒有Class類的概念,生成實例對象的傳統(tǒng)方法是通過構(gòu)造函數(shù)。

例如:

function Mold(a,b){ this.a=a; this.b=b; } Mold.prototype.count=function(){ return this.a+this.b; }; let sum=new Mold(1,2); console.log(sum.count())//3

這中寫法跟傳統(tǒng)的面向?qū)ο笳Z言差異較大,寫起來也比較繁雜。

ES6提供了更加接近其他語言的寫法,引入了Class(類)的概念,作為對象的模板,可以通過class關(guān)鍵字,定義類(類似python、java等);

當(dāng)然ES6的大部分功能再ES5都能實現(xiàn),ES6的class可以看作是一個語法糖,只是新的class定義類的寫法讓對象原型的寫法更加簡單明了、更接近與面向?qū)ο蟮木幊趟枷搿Ec上面ES5寫的類使用ES6實現(xiàn),例如:

class Mold{ constructor(a,b){ this.a=a; this.b=b; } count(){ return this.a+this.b; } } let sum=new Mold(1,2); console.log(sum.count())//3

這里ES6的類,只需用class定義,并且類的方法不需要用function定義;還有ES6的constructor方法,代表這該類的構(gòu)造方法;并且它的this關(guān)鍵字指向著實例對象。這里ES5的構(gòu)造函數(shù)Mold,相當(dāng)于ES6Mold類的constructor方法。

constructor

ES6實例對象的構(gòu)造函數(shù)就是該類本身;并且當(dāng)我們new 類名()就是執(zhí)行了constructor這個函數(shù)。

例如:

class Mold{ constructor(){console.log('aaa') } } let m=new Mold();// aaa console.log(m.constructor===Mold);//true

上面代碼Mold類的constructor,實例化對象時執(zhí)行默認constructor;

任何對象都有構(gòu)造函數(shù),并且構(gòu)造函數(shù)與當(dāng)前對象的類是相同;

例如:

let arr=new Array(); console.log(arr.constructor===Array);//true let str=new String(); console.log(str.constructor===String);//true let obj=new Object(); console.log(obj.constructor===Object);//true

2. 類的繼承 extends

繼承父類后,子類會繼承父類所有的方法和屬性(包括靜態(tài)方法和屬性)

如果子類沒有定義constructor方法,會默認被添加該方法

任何子類都有constructor方法;

例如:

//class 類名 extends 被繼承的類{}Class Father{ constructor(){ } sum(){ console.log('abc'); } static fn(){ console.log('hello') } } Class Son extends Father{ } let s=new Son(); s.sum()//abc,繼承了父類的sum()方法 Son.fn()//hello 繼承了父類的靜態(tài)方法fn()

繼承后的子類方法的三種處理:

1). 完全繼承,不需要重寫這個方法,子類執(zhí)行繼承方法內(nèi)容與父類相同

2). 重寫覆蓋,只需要在這個類中重寫這個方法就可以覆蓋繼承過來的內(nèi)容

3). 加工,子類可以用super調(diào)用父類的方法或?qū)傩赃M行加工,再加上子類自己的方法和屬性

3. super

調(diào)用父類的構(gòu)造函數(shù)直接使用super(),并且可以傳參;

子類的構(gòu)造函數(shù)中,只有調(diào)用了super之后才可以使用this關(guān)鍵字,否則會報錯;

例如:

//super.父類函數(shù)(); class Father{ constructor(){ console.log('bbb'); } } class Son extends Father{ constructor(x){ this.x=x;//ReferenceError,報錯 super(); this.x=x;//正確 } } let sum=new Son();//bbb

4. 類的static靜態(tài)

在屬性或方法前面使用 static定義類的靜態(tài)屬性和方法;

所有的靜態(tài)屬性和靜態(tài)方法都不能通過實例化的對象調(diào)用;

需要通過類來調(diào)用,靜態(tài)屬性和靜態(tài)方法是類的專屬屬性和方法,和實例化對象無關(guān),比如數(shù)組和數(shù)學(xué)方法中的:Array.from();Math.random()。

例如:

class Mold{ static x=0; y=1; static fn1(){ console.log('aaa') } fn2(){ console.log('bbb'); } } let m=new Mold(); console.log(m.x,m.y);//undefined , 1 m.fn1(); // TypeError m.fn2(); // bbb //需要通過類來調(diào)用 Mold.fn1(); //aaa console.log(Mold.x);//0

靜態(tài)的使用場景:

一般靜態(tài)的方法是用來解決一系列該類型的方法;

解決具體類型的方法,不是解決某個具體對象的方法

靜態(tài)屬性,一般用于存儲該類型的一系列通用的屬性變量

這種存儲,在類創(chuàng)建的時候就已經(jīng)變成全局的了,可在任何地方調(diào)用,并且不會被自動銷毀

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜国产日韩另类美女| 中文字幕一区二区三区在线视频| 欧美视频久久| 日韩av一区二区在线影视| 91精品国产自产精品男人的天堂| 免费一区二区视频| 香蕉成人久久| 国产精品午夜av| 国产精品va视频| 国产麻豆久久| 亚洲激情中文在线| 亚洲网址在线观看| 亚洲一二三区视频| 日本视频一区二区| 亚洲涩涩av| 日韩欧美三区| 美国三级日本三级久久99| 国产美女高潮在线| 在线亚洲免费| 免费在线播放第一区高清av| 成人久久一区| 蜜桃成人av| 欧美国产亚洲精品| 久久中文字幕二区| 久久天堂影院| 国产欧美88| 欧美激情日韩| 成人va天堂| aa国产精品| 国产精区一区二区| 亚洲在线一区| 国产亚洲精品美女久久| 亚洲一区资源| 偷拍欧美精品| 四虎精品永久免费| 国产中文一区| 欧美日韩一区二区高清| 亚洲一区黄色| 亚洲欧洲高清| 国产精品亚洲人成在99www| 亚洲小说欧美另类婷婷| 欧美日韩一区二区三区不卡视频 | 日欧美一区二区| 精品九九在线| 国产无遮挡裸体免费久久| 99国产精品久久久久久久| 国产精品久久观看| 中文字幕一区二区精品区| 亚洲自拍另类| 日韩一区二区三区免费视频| 国产欧美在线观看免费| 丝袜诱惑一区二区| 中文无码久久精品| 国产毛片一区二区三区| 日韩国产激情| 亚洲欧美网站| 国产欧美大片| 欧美成人精品| 日本aⅴ免费视频一区二区三区| 国产一区二区三区四区五区传媒| 美女视频黄久久| 色吊丝一区二区| 久久最新视频| 蜜臀久久精品| 日韩av一区二区三区四区| 丝袜诱惑制服诱惑色一区在线观看| 美女视频黄 久久| 欧洲毛片在线视频免费观看| 日韩av二区| 国产乱人伦丫前精品视频| 国产一区二区三区亚洲| 久久福利精品| 福利视频一区| 日韩中文字幕一区二区高清99| av资源亚洲| 欧美天堂一区| 美女精品网站| 视频一区二区三区入口| 亚洲精品韩国| 亚洲2区在线| 亚洲一区日韩| 国产精品国产一区| 亚洲精品福利| 亚洲1234区| 欧美午夜精彩| 在线免费观看亚洲| 视频一区二区不卡| 中文不卡在线| 福利精品在线| 91一区二区| 久久精品在线| 91欧美日韩| 97久久精品| 亚洲欧美在线专区| 国产aⅴ精品一区二区三区久久| 国产精品高潮呻吟久久久久| 国产精品成人3p一区二区三区| 91亚洲自偷观看高清| 正在播放日韩精品| 亚洲大全视频| 伊人久久大香伊蕉在人线观看热v| 亚洲性视频在线| 久久精品av麻豆的观看方式| 麻豆精品蜜桃视频网站| 丝袜美腿一区| 久久视频国产| 亚洲精品成人一区| 国产三级精品三级在线观看国产| 午夜久久av| 91欧美极品| 麻豆视频一区二区| 久久青青视频| 午夜一区在线| 少妇精品久久久一区二区| 日韩精品五月天| 麻豆网站免费在线观看| 欧美成人国产| 中文字幕一区二区精品区| 免费观看久久av| 爽爽淫人综合网网站| 国产91精品对白在线播放| 亚洲va中文在线播放免费| 日韩欧美不卡| 中文在线中文资源| 国产日韩欧美一区二区三区| 日韩激情网站| 热久久久久久| 日韩和欧美一区二区| 日本一区二区三区中文字幕| 午夜亚洲福利| 日韩精品高清不卡| 国产亚洲一区二区三区啪| 91欧美日韩在线| 国产精品一区二区精品视频观看| 国产午夜一区| 欧美aa在线视频| 久久亚洲黄色| а√天堂中文在线资源8| 日韩精品91| 黑人精品一区| 亚洲成人免费| 蜜臀久久久久久久| 日本欧美久久久久免费播放网| 国产调教精品| 国产一区二区三区免费在线| 国产精品久久久久久久久妇女| 不卡一二三区| 国产精品av一区二区| 国产精品日韩| 日韩精品免费观看视频| 免费观看亚洲天堂| 日韩免费一区| 久久av一区二区三区| 91精品视频一区二区| 欧美自拍一区| 精品一区二区三区免费看| 日韩免费在线| 日韩一区精品视频| 国产免费久久| 欧产日产国产精品视频| 国产视频亚洲| 日韩国产在线一| 国产videos久久| 午夜日韩在线| 欧美午夜三级| 久久久精品午夜少妇| 人人爽香蕉精品| 麻豆国产精品| 亚洲先锋成人| 亚洲性视频在线| 久久影院资源站| 亚洲国产一区二区三区在线播放 | 91tv亚洲精品香蕉国产一区| 日韩午夜精品| 久久国产乱子精品免费女| 国产suv精品一区二区四区视频| 国产高清一区二区| 欧美一区成人| 久久国产日韩| 日韩福利视频网| 日韩国产一区| 亚洲人成网站在线在线观看| 欧美激情视频一区二区三区在线播放| 久久视频一区| 日本91福利区| 久久人人97超碰国产公开结果| 亚洲精品护士| 日韩精品麻豆| 国产免费av国片精品草莓男男| 99精品视频在线观看免费播放| 日韩av网站在线观看| 亚洲天堂1区| 国产欧美日韩一级| 欧美日韩精品在线一区| 日本色综合中文字幕| 欧美日韩国产一区精品一区| 欧美精品国产一区| 国产综合婷婷| 久久三级毛片| 日韩在线观看一区二区|