站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        class是es5還是es6

        class是es6新特性。在ES6中,class(類)作為對象的模板被引入,可以通過class關(guān)鍵字定義類;新的class寫法讓對象原型的寫法更加清晰、更像面向?qū)ο缶幊痰恼Z法,也更加通俗易懂。類(class)是ECMAScript中新的基礎(chǔ)性語法糖結(jié)構(gòu),雖然ES6類表面上看起來可以支持正式的面向?qū)ο缶幊蹋珜?shí)際上它背后使用的仍然是原型和構(gòu)造函數(shù)的概念,讓對象原型的寫法更加清晰、

        class是es5還是es6

        前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
        Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

        本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

        class是es6新特性。在ES6中,class (類)作為對象的模板被引入,可以通過 class 關(guān)鍵字定義類。

        ES6 提供了更接近傳統(tǒng)語言的寫法,新引入的class關(guān)鍵字具有正式定義類的能力。類(class)是ECMAScript中新的基礎(chǔ)性語法糖結(jié)構(gòu),雖然ECMAScript 6類表面上看起來可以支持正式的面向?qū)ο缶幊蹋珜?shí)際上它背后使用的仍然是原型和構(gòu)造函數(shù)的概念,讓對象原型的寫法更加清晰、更像面向?qū)ο缶幊痰恼Z法。

        一、class簡介

        傳統(tǒng)的JS只有對象的概念,沒有class類的概念,因?yàn)镴S是基于原型的面向?qū)ο笳Z言,原型對象特點(diǎn)就是將屬性全部共享給新對象。

        ES6引入了class類這個(gè)概念,通過class關(guān)鍵字可以定義類,這就是更符合我們平時(shí)所理解的面向?qū)ο蟮恼Z言。

        class Person{   //定義一個(gè)名為Person的類     // 構(gòu)造函數(shù),用來接受參數(shù)     constructor(x,y){         this.x = x;    //this代表的是實(shí)例對象         this.y = y;     }     todoSome(){  //這是個(gè)類的方法,不需要加function,有多個(gè)方法也不用逗號隔開         alert(this.x + "的年齡是" +this.y+"歲");     } } export default  Person;
        登錄后復(fù)制

        二、靜態(tài)方法和靜態(tài)屬性

        靜態(tài)方法和靜態(tài)屬性,是使用static關(guān)鍵字的屬性和方法

        2.1 靜態(tài)方法

        static classMethod(){ 		console.log('123456') 	}
        登錄后復(fù)制

        • 靜態(tài)方法不會被子類繼承,子類不能調(diào)用
        • 靜態(tài)方法中的this,指向的是類class,不是類的實(shí)例。因此靜態(tài)方法只能通過類名來調(diào)用,不能通過實(shí)例來調(diào)用

        let p = new Point(); p.classMethod();  // 報(bào)錯(cuò)
        登錄后復(fù)制

        2.2 靜態(tài)屬性

        static prop = 1 ;  // 靜態(tài)屬性
        登錄后復(fù)制

        • 靜態(tài)屬性不能被子類繼承,子類不能調(diào)用
        • 靜態(tài)屬性只能通過類名來調(diào)用,不能通過類的實(shí)例來調(diào)

        三、class繼承extends

        • class可以用過extends關(guān)鍵字來繼承
        • ES6繼承,子類構(gòu)造函數(shù)中必須使用super()。因?yàn)镋S6繼承是先將父類實(shí)例對象的屬性和方法,加到this上面,然后再調(diào)用子類的構(gòu)造函數(shù)修改這個(gè)this
        • 如果子類沒有定義constructor方法,super()會默認(rèn)添加上
        • 子類會繼承父類的方法和屬性,但是靜態(tài)方法和屬性必須通過子類的類名來調(diào)用

        import classtest from "./classtest";  //先引入父類 class Man extends classtest{     constructor(x,y){   //構(gòu)造函數(shù)盡量與父類參數(shù)保持一致         super();   //利用super()關(guān)鍵字,這個(gè)必須放在子類構(gòu)造函數(shù)中的第一位置         this.x = x;         this.y = y;     } } export default  Man;
        登錄后復(fù)制

        四、class的取值函數(shù)getter和存值函數(shù)setter

        getter、setter就是給class的屬性讀值、傳值用的。

        取值函數(shù)getter和存值函數(shù)setter可自定義賦值和取值行為,當(dāng)一個(gè)屬性只有g(shù)etter沒有setter的時(shí)候,這個(gè)屬性就是只讀屬性,不能賦值,第一次初始化也不行。

        如果變量定義為私有的(定義在類的花括號外面),就可以只使用getter不使用setter。

        let data=[1,2,3,4];  //放在類外面,屬于私有變量,可以只讀取 class Person{     // 構(gòu)造函數(shù)     constructor(x,y){         this.x = x;         this.y = y;     }     get x(){         console.log('獲得name');         return this._name;    //get讀取屬性     }     set x(x){         console.log("設(shè)置name");           this._name=x;   //set給屬性賦值     }     get data(){         return data;   //只讀屬性,屬性返回的值只能是私有變量     }     todoSome(){         alert(this.x + "的年齡是" +this.y+"歲");     }     static dayin(){         alert("dayin");     } } export default  Person;
        登錄后復(fù)制

        如何使用:

         var test= new this.$myutils.classtest('haha','18');   test.x="haha3";   //改變了實(shí)例化時(shí)候的x的值   test.todoSome();  //輸出:haha3的年齡是18歲。這里就已經(jīng)不是實(shí)例化時(shí)候的haha了   console.log(test.data);   //結(jié)果:打印[1,2,3,4]
        登錄后復(fù)制

        五、注意事項(xiàng):

        1、在類中定義方法時(shí)候,不可以給方法加上function關(guān)鍵字,因?yàn)镴S中構(gòu)造函數(shù)是用function定義的,兩個(gè)隔開。

        2、所有方法不要用逗號隔開,否則會報(bào)錯(cuò)。

        【推薦學(xué)習(xí):javascript高級教程】

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 2022精品国偷自产免费观看| 亚洲精品视频免费观看| 国产农村妇女毛片精品久久| 久久久无码精品亚洲日韩按摩| 一区二区三区精品| 精品熟女少妇av免费久久| 老子影院午夜精品无码| 四虎影视国产精品亚洲精品hd| 精品日韩亚洲AV无码一区二区三区| 久久精品二区| 国产成人精品曰本亚洲79ren| 99久久人妻无码精品系列蜜桃| 亚洲午夜国产精品无码 | 2022精品天堂在线视频| 婷婷五月深深久久精品| 合区精品中文字幕| 精品中文高清欧美| 国产精品欧美一区二区三区| 欧洲精品视频在线观看 | 欧美在线精品一区二区三区| 国产伦精品一区二区三区视频金莲| 久久福利青草精品资源站| 国产精品亚洲а∨无码播放| 亚洲国产精品VA在线看黑人| 亚洲福利精品一区二区三区| 久久精品不卡| 狠狠精品干练久久久无码中文字幕| 国产成人久久精品麻豆一区| 午夜精品成年片色多多| 久久精品国产亚洲网站| 久久精品免费一区二区三区| 久草视频在线这里精品| 久久精品国产精品亚洲精品| 久久99国产精品久久久| 老司机69精品成免费视频| 99久久精品免费观看国产| 午夜精品成年片色多多| 99久久人人爽亚洲精品美女| 国产精品99| 国产欧美精品一区二区三区四区 | 亚洲精品欧美综合在线|