🍌
JSのclassについての雑なメモ
classの定義
// 巻き上げはできないよ
class Hoge {
toString(){
return "fuga"
}
}
classの継承
class HogeHoge extends Hoge {
toString(){
return "fugafuga"
}
}
匿名class
// 名前有り
const Hoge = class Hoge {
toString(){
return "fuga"
}
}
// 名前なし
const Hoge = class {
toString(){
return "fuga"
}
}
匿名class(継承)
// 名前有り
const Hoge = class HogeHoge extends Hoge {
toString(){
return "fugafuga"
}
}
// 名前なし
const Hoge = class extends Hoge {
toString(){
return "fugafuga"
}
}
継承のとこには式を入れられるよ
class HogeHoge extends (class Hoge {toString(){return "fuga"}}) {
toString(){
return "fugafuga"
}
}
おまけ
オブジェクトにはセッターとゲッターってのがあるよ。クラスにもあるよ。
({
get fugafuga(){
return "hogehoge"
},
set hogehoge(value){
console.log(value)
}
})
privateプロパティは、#hogehoge
などの形で追加できるよ
class Hoge {
#fuga = "fuga"
}
オブジェクトのキーには式の結果も指定できるよ
// データが存在しないはずのインデックスに謎の文字列が...。
class MyArray extends Array {
get[0](){
return "祝ってやる"
}
}
staticなやつは、
class Hoge {
static ああああああああああああああああああああああああああああ = 1234567890
}
キーの型には、string
とSymbol
の二種類があるよ。
number
型のキーだと思ってたものは実は文字列へ変換されたnumber
ってことなんだよね。
Discussion