試驗環(huán)境:webpack + ts + babel
在ts中教藻,在使用new語法創(chuàng)建類實例時距帅,有兩種方式給實例屬性賦值:
class Person {
// 方式一:直接在屬性聲明時給個默認值
firstName: string = 'tom'
// 普通聲明
lastName: string
constructor () {
方式二:在構造器中賦值
this.firstName = 'nick'
this.lastName = 'yang'
}
}
其中,當對同一個屬性賦值時括堤,方式二優(yōu)先級高于方式一碌秸。
那么加上繼承呢?比如:
class BaseModel {
firstName: string = 'parent_nick'
constructor () {
this.lastName = 'parent_yang'
}
}
class Person extends BaseModel {
// 方式一:直接在屬性聲明時給個默認值
firstName: string = 'tom'
// 普通聲明
lastName: string
constructor () {
方式二:在構造器中賦值
this.firstName = 'nick'
this.lastName = 'yang'
}
}
在這種情況下悄窃,可以看出一個屬性有四種賦值方式讥电。此時的賦值優(yōu)先級是:子類構造器 > 子類聲明預設定(默認值) > 父類構造器 > 父類聲明預設定
更長的繼承鏈依次類推。