亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

es6的面向?qū)ο?

cppprimer / 2274人閱讀

摘要:的時候調(diào)用姜姜吳建我會飛去上學姜姜姜姜獲取加賦值。值得注意是,這里的不是新的對象繼承模型,它只是原型鏈的語法糖表現(xiàn)形式。允許一個子類繼承父類,需要注意的是,子類的函數(shù)中需要執(zhí)行函數(shù)。

es6的classes
構(gòu)造方法:constructor。new的時候調(diào)用
class Student{
    constructor (name,age){
        this.name=name;
        this.age=age;
    }
    run(){
        return this.name;
    }
}
let xs = new Student("姜姜",23);
console.log(xs.name);
console.log(xs.age);

function Vehicle (name,age){
    this.name = name;
    this.age = age;
}
Vehicle.prototype.name = function name(){
    return this.name;
};
var jj = new Vehicle ("吳建",24);
console.log(jj.name);
get set
class Student{
    constructor (name,age){
        this.name =name;
        this.age=age;
    }
    run(){
        console.log("我會飛");
    }
    get xm(){
        return this.name +"123";
    }
    set xm(value){
        this.name =value;
    }
    static shangxue (){
        console.log("去上學");
    }
}
let xs = new Student("姜姜",25);
console.log(xs.xm);
xs.xm="姜姜";
console.log(xs.xm);
Student.shangxue();
//get:獲取加賦值。
//set:設置。
//static:靜態(tài)方法|類方法。
//set和get的方法名相同,而且可以同名
方法重載|方法覆蓋:
class Student{
    constructor (name,age){
        this.name =name;
        this.age=age;
    }
    run(){
        console.log("我會飛");
    }
}
let xs = new Student("姜姜",25);

class Teacher extends Student{
    constructor (name,age,sex){
        super(name,age);
        this.sex=sex;
    }
    eat(){
        console.log(this.name +"is eating")
    }
    run(){
        super.run();
        console.log("我想高飛");
    }
}
var ls = new Teacher("吳建","30","男");
ls.run();//我會飛 我想高飛;
注釋:雖然子類繼承了父類的run方法,但是子類會把父類的方法給覆蓋掉,這個就是方法覆蓋
繼承export
命名規(guī)范 —name 私有屬性
static靜態(tài)方法 方法覆蓋
ES6 中有 class 語法。值得注意是,這里的 class 不是新的對象繼承模型,它只是原型鏈的語法糖表現(xiàn)形式。
extends 允許一個子類繼承父類,需要注意的是,子類的 constructor 函數(shù)中需要執(zhí)行 super() 函數(shù)。
關(guān)鍵字 class, extends, super
特點

非聲明提升(hoisted) 和let一樣

自動處于嚴格模式

需要new, 否則會拋錯

重寫類名和方法會拋錯

有g(shù)et set 方法

可以指定方法為static 。只能在class內(nèi)部使用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/84067.html

相關(guān)文章

  • ES6—class與面向對象編程(8)

    摘要:接下來我們看下類的寫法,這個就很接近于傳統(tǒng)面向?qū)ο笳Z言了。如果你想了解傳統(tǒng)面向?qū)ο笳Z言,這里是一個好切入點。作為對象時,指向父類的原型對象。這些就是為將來在中支持面向?qū)ο蟮念悪C制而預留的。 在ES5中,我們經(jīng)常使用方法或者對象去模擬類的使用,并基于原型實現(xiàn)繼承,雖然可以實現(xiàn)功能,但是代碼并不優(yōu)雅,很多人還是傾向于用 class 來組織代碼,很多類庫、框架創(chuàng)造了自己的 API 來實現(xiàn) c...

    wangjuntytl 評論0 收藏0
  • 重新認識JavaScript面向對象: 從ES5到ES6

    摘要:基于原型的面向?qū)ο笤诨谠偷恼Z言中如并不存在這種區(qū)別它只有對象不論是構(gòu)造函數(shù),實例,原型本身都是對象。允許動態(tài)地向單個的對象或者整個對象集中添加或移除屬性。為了解決以上兩個問題,提供了構(gòu)造函數(shù)創(chuàng)建對象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新認識面向?qū)ο?1. JavaScript...

    VishKozus 評論0 收藏0
  • 重新認識JavaScript面向對象: 從ES5到ES6

    摘要:基于原型的面向?qū)ο笤诨谠偷恼Z言中如并不存在這種區(qū)別它只有對象不論是構(gòu)造函數(shù),實例,原型本身都是對象。允許動態(tài)地向單個的對象或者整個對象集中添加或移除屬性。為了解決以上兩個問題,提供了構(gòu)造函數(shù)創(chuàng)建對象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新認識面向?qū)ο?1. JavaScript...

    用戶83 評論0 收藏0
  • javascript面向對象之“多態(tài)”

    摘要:之前,本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝繼承多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。所以在中出現(xiàn)了等關(guān)鍵字,解決了面向?qū)ο笾谐霈F(xiàn)了問題。 ES6之前,javascript本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝、繼承、多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以讓我們以...

    JerryWangSAP 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<