EventEmitterとかのEvent名にクラス名を仕込みたいなと思って、自分のクラス名を取得する方法を考えた。
シンプルに this.constructor.name
でよかった。extendsした時の挙動がよくわからなかったので試した。
code.js
class Base {
constructor() {
console.log("Base"); // line 1
console.log(this.constructor.name); // line2
}
getClassName() {
console.log(this.constructor); // line4
console.log(this.constructor.name); // line5
}
}
class Something extends Base {
constructor() {
super()
console.log("Something"); // line 3
}
}
var o = new Something();
o.getClassName();
result
Base
Something
Something
[Function: Something]
Something
サンキューです