欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaScriptES6Class類的實(shí)現(xiàn)方法

這篇文章主要講解了JavaScript ES6 Class類的實(shí)現(xiàn)方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供高碑店網(wǎng)站建設(shè)、高碑店做網(wǎng)站、高碑店網(wǎng)站設(shè)計(jì)、高碑店網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、高碑店企業(yè)網(wǎng)站模板建站服務(wù),十余年高碑店做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

JavaScript ES6之前的還沒(méi)有Class類的概念,生成實(shí)例對(duì)象的傳統(tǒng)方法是通過(guò)構(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

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

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

當(dāng)然ES6的大部分功能再ES5都能實(shí)現(xiàn),ES6的class可以看作是一個(gè)語(yǔ)法糖,只是新的class定義類的寫(xiě)法讓對(duì)象原型的寫(xiě)法更加簡(jiǎn)單明了、更接近與面向?qū)ο蟮木幊趟枷?。與上面ES5寫(xiě)的類使用ES6實(shí)現(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)鍵字指向著實(shí)例對(duì)象。這里ES5的構(gòu)造函數(shù)Mold,相當(dāng)于ES6Mold類的constructor方法。

constructor

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

例如:

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

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

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

例如:

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

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

如果子類沒(méi)有定義constructor方法,會(huì)默認(rèn)被添加該方法

任何子類都有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). 完全繼承,不需要重寫(xiě)這個(gè)方法,子類執(zhí)行繼承方法內(nèi)容與父類相同

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

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

3. super

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

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

例如:

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

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

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

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

需要通過(guò)類來(lái)調(diào)用,靜態(tài)屬性和靜態(tài)方法是類的專屬屬性和方法,和實(shí)例化對(duì)象無(wú)關(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
   //需要通過(guò)類來(lái)調(diào)用
   Mold.fn1(); //aaa
   console.log(Mold.x);//0

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

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

解決具體類型的方法,不是解決某個(gè)具體對(duì)象的方法

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

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

看完上述內(nèi)容,是不是對(duì)JavaScript ES6 Class類的實(shí)現(xiàn)方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:JavaScriptES6Class類的實(shí)現(xiàn)方法
新聞來(lái)源:http://aaarwkj.com/article42/igoohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站建設(shè)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
欧美精品在线观看不卡一区| 午夜激情视频福利在线观看| 日韩成年人高清精品不卡一区二区| 亚洲精品国产精品粉嫩| 国产亚洲精品热视频在线观看| 先锋影音女同中文字幕 | 亚洲综合香蕉在线视频| 欧美一区二区三区四区久久| 中文字幕一区侵犯人妻| 亚洲中文字幕第三页在线观看 | 日韩一区二区三区av观看| 国产精品大屁股一区二区| 久久亚洲精品国产精品黑人| 国产精品成人大片在线播放| 男人自拍天堂在线视频| 国产成人福利视频在线观看| 国产精品日本一区二区| 精品少妇人妻av蜜桃| 成人国产精品三上悠亚久久| 日韩av手机在线不卡| 免费看欧美粗又大爽老| 成年人免费观看黄色片| 国产精品男人在线播放| 男女性视频在线免费观看| 国产午夜激情自拍视频| 黄色资源网日韩三级一区二区| 在线观看中文字幕日韩精品| 最新中文字幕成人在线观看| 欧美日韩视频一区二区| 秋霞日韩欧美一区二区三区 | 91精品超碰人人在线公开| 欧美伊人久久大综合精品| 欧美日韩精品国产精品| 亚洲欧美另类国产一区| 婷婷久久香蕉毛片毛片| 欧美劲爆三级免费观看| 亚洲中文字幕高清乱码毛片| 中文字幕亚洲无级av| 亚洲欧美日韩国产桃色| 午夜福利中文在线观看| 成人色视频免费在线观看|