「this.name」で親クラスの名前を取得
class.js
class Parent {
static showName() {
console.log(this.name);
}
}
class Child extends Parent {}
Child.showName(); //Child
親クラスに子クラスをインスタンス化するファクトリーメソッドを実装(new this)
class.js
class Parent {
static new() {
return new this();
}
}
class Child extends Parent {}
const ins = Child.new();
子クラス名を取得する際の注意点(static同士でメソッドを呼び出すと、親クラスの名前になる)
- 以下のケースだと子クラスのクラス名は取得できない。
class.js
class Parent {
static showName() {
console.log(Parent._className());
}
static _className() {
return this.name;
}
}
class Child extends Parent {}
Child.showName(); //Parent (Childではない)