ts中的class類(批量創(chuàng)建對(duì)象)

//class類
class sayWords {
    //創(chuàng)建兩個(gè)變量(變量的值必須初始化,若沒有初始化,需要在構(gòu)造函數(shù)中為其賦值)
    userName: string;
    userSay: string;

//給變量賦值
    constructor(userName: string, userSay: string) {
        this.userName = userName;
        this.userSay = userSay;
    }

    userActive() {
        console.log(`${this.userName}開始說話啦,他說${this.userSay}`)
    }
}

//創(chuàng)建對(duì)象并引用(實(shí)例化對(duì)象)
const s1 = new sayWords('tom', 'hello')

//類成員的屬性,都是實(shí)例屬性,即實(shí)例化對(duì)象之后,當(dāng)前實(shí)例對(duì)象中包含所有的類屬性, 類成員方法,都是實(shí)例方法
console.log(s1.userName)
console.log(s1.userSay)
s1.userActive()

和js對(duì)象相比,js對(duì)象需要通過prototype的方式將對(duì)象方法綁定到他的原型上,ts類中函數(shù)直接寫在class當(dāng)中。(寫法上的區(qū)別)

類的繼承extends

//類的繼承
class Dog{
    name:string;
    static sex:string;
    constructor(name:string){
        this.name = name
    }
    run(){
        console.log(this.name)
    }
}
class Husky extends Dog{
    // 父類的構(gòu)造函數(shù)所包含的參數(shù),子類也必須包含,且子類必須含有super
    constructor(name:string,age:number){
        super(name)
        //給屬性賦值必須在super之后
        this.age = 2
    }
    age:number
}

類成員修飾符
public 公共屬性(默認(rèn)修飾符)
private 私有屬性 只能在類的本身被調(diào)用而不能在類的實(shí)例或者類的子類中調(diào)用
protect 保護(hù)屬性 只能在類和其子類中被調(diào)用,不能在類的實(shí)例(new Dog())中被調(diào)用
readonly 只讀屬性 必須給該屬性初始化并且不能更改
static 靜態(tài)屬性 static 靜態(tài)屬性 可以通過類來調(diào)用 Dog.sex,也可以通過子類去調(diào)用Husky.sex

//類的構(gòu)造函數(shù)的屬性,也可以給他添加修飾符
class Animal{
    //相當(dāng)于在當(dāng)前類中聲明了一個(gè)公共的name,name就變成了實(shí)例屬性
    // name:string;
    constructor(public name:string){

    }
}

抽象類 abstract(只能被繼承,而不能被實(shí)例化)
可以用來封裝多個(gè)公用的函數(shù),提高代碼的復(fù)用性

abstract class AbCla{
    eat(){
        console.log('eat')
    }
}
class AbChild extends AbCla{
    name:string;
    constructor(name:string){
        super()
        this.name = name
    }
}

let ab = new AbChild('hah')
ab.eat()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容