Javascript で自分自身のクラス名を取得するのに一番簡単な方法は constructor のname 属性を参照する方法です。
Javascriptでクラス名を取得する方法。
Javascriptでクラス名を取得するにはconstructor のname 属性を参照すると簡単に当該のクラス名が取得できます。
<html> <head> <script> class BaseClass{ constructor(){ console.log( "BaseClass constructor My Name is " + this.constructor.name ) ; } } var base_class = new BaseClass() ; </script> </head> <body> </body> </html>
実行結果は
BaseClass constructor My Name is BaseClass
になり、クラス名が取得出来ています。
継承したらどうなるか?
ここで、上記のソースで BaseClass クラスを継承した ChildClass を作成したらどうなるかをみてみます。
<html> <head> <script> class BaseClass{ constructor(){ console.log( "BaseClass constructor My Name is " + this.constructor.name ) ; } } class ChildClass extends BaseClass{ constructor(){ super() ; console.log( "ChildClass constructor My Name is " + this.constructor.name ) ; } } var base_class = new BaseClass() ; var child_class = new ChildClass() ; </script> </head> <body> </body> </html>
今度は
BaseClass constructor My Name is BaseClass BaseClass constructor My Name is ChildClass ChildClass constructor My Name is ChildClass
となり、継承する前のクラス(BaseClass)を直接 new した場合の名前は BaseClass になりますが、継承したクラス(ChildClass)の名前は両方とも ChildClass になります。