JavaScript でクラス名を取得する

Aryan Tyagi 2023年10月12日
  1. JavaScript で instanceof 演算子を使用してクラス名を取得する
  2. JavaScript で name プロパティを使用してクラス名を取得する
JavaScript でクラス名を取得する

JavaScript では、クラスの名前を時々取得する必要がある場合があります。これは、クラス名を識別子として使用する場合、またはデバッグメッセージに使用する場合に役立ちます。

JavaScript では、Java はクラスベースの言語であるのに対し、JavaScript はプロトタイプベースの言語であるため、Java の getClass() 関数に相当するものはありません。

このチュートリアルでは、JavaScript でクラス名を取得します。

JavaScript で instanceof 演算子を使用してクラス名を取得する

instanceof 演算子はクラス名を直接指定しませんが、コンストラクターのプロトタイププロパティがオブジェクトのプロトタイプチェーンのどこかにあるかどうかを確認できます。

例えば、

function Test() {}
let test = new Test();
console.log(test instanceof Test);

出力:

true

上記の例では、testTest に属しているため、true が返されます。

JavaScript で name プロパティを使用してクラス名を取得する

オブジェクトのコンストラクターの name プロパティを使用して、JavaScript のクラス名を知ることができます。このようにして、オブジェクトをインスタンス化したクラスの名前を取得します。

例えば、

function Test() {}
let test = new Test();
console.log(test.constructor.name);
console.log(Test.name);

出力:

Test
Test

JavaScript で typeof 演算子を使用してクラス名を取得する

typeof 演算子は、オペランドのタイプを示す文字列を返します。

例えば、

function Test() {}
let test = new Test();
console.log(typeof Test);
console.log(typeof test);

出力:

function
object

JavaScript で isPrototypeOf() 関数を使用してクラス名を取得する

関数 isPrototypeOf() 関数は、オブジェクトが別のオブジェクトのプロトタイプであるかどうかを判別します。まず、オブジェクトの prototype プロパティを使用する必要があります。

次の例を参照してください。

function Test() {}
let test = new Test();
console.log(Test.prototype.isPrototypeOf(test));

出力:

true