官术网_书友最值得收藏!

9.2 class的用法

ES2015中使用class的操作除了定義正常的屬性、方法外,最重要的就是extends、super以及constructor關(guān)鍵字的使用。其中,extends用于類的繼承,super用于調(diào)用父類的構(gòu)造函數(shù),constructor用于定義構(gòu)造函數(shù)。我們來看下面的例子。

    //定義程序類
    class Program{
        constructor(language) {
            this.language = language;
        }
        logLanguage(){
            console.log(this.language);
        }
    }
    //定義網(wǎng)站類,繼承自Program
    class WebSite extends Program{
        constructor(language, domainName) {
            super(language);
            this.domainName = domainName;
        }
        logDomainName (){
            console.log(this.domainName);
        }
    }


    //定義網(wǎng)站類型對象實例mySite
    var mySite = new WebSite("JavaScript", "www.excelib.com");
    //使用mySite調(diào)用父類方法logLanguage
    mySite.logLanguage();                    //JavaScript
    //使用mySite調(diào)用自身的方法logDomainName
    mySite.logDomainName ();                 //www.excelib.com

使用過基于類的語言的讀者可以很容易理解上面的代碼。代碼的內(nèi)容非常簡單,首先定義了一個Program類,然后定義了一個Program的子類WebSite,最后創(chuàng)建了WebSite類型的對象實例mySite,并且使用它調(diào)用了自身的logDomainName方法和父類中的logLanguage方法。需要注意的是,ES中的構(gòu)造函數(shù)是使用constructor來定義的,而不像其他基于類的語言(如Java)中使用與類名同名的函數(shù)來定義。

主站蜘蛛池模板: 三台县| 寿宁县| 元阳县| 浮山县| 石屏县| 太仆寺旗| 沁源县| 清新县| 廊坊市| 清水河县| 年辖:市辖区| 抚州市| 竹北市| 临江市| 东明县| 远安县| 察雅县| 志丹县| 新和县| 榆林市| 西林县| 阳信县| 即墨市| 九江县| 尚志市| 桐柏县| 旌德县| 凤台县| 化德县| 饶平县| 都匀市| 大方县| 德化县| 贵阳市| 当阳市| 宁晋县| 江门市| 河曲县| 遂溪县| 银川市| 安徽省|