ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript オブジェクトの型名を取得するにはどうすればよいですか?

JavaScript オブジェクトの型名を取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-12 22:50:11716ブラウズ

How Can I Get the Type Name of a JavaScript Object?

オブジェクトの型の名前を取得する

JavaScript には、オブジェクトの型を取得する Java の class.getName() メソッドに直接相当するメソッドはありません。オブジェクトのタイプの名前。ただし、この目的にはさまざまなアプローチを使用できます。

コンストラクター プロパティの使用

オブジェクトのコンストラクター プロパティは、そのコンストラクター関数を参照します。ほとんどのオブジェクトでは、コンストラクター プロパティは、オブジェクトの作成に使用されるコンストラクター関数を指します。

var myArray = [1, 2, 3];
myArray.constructor == Array; // true

ただし、このメソッドには次の制限があります。

  • オブジェクトに対しては機能しない場合があります。多重継承を使用して作成されました。
  • 異なるウィンドウ オブジェクト間では機能しない可能性があります (例: iframes).

Instanceof 演算子の使用

instanceof 演算子は、オブジェクトが特定のコンストラクター関数のインスタンスであるかどうかを確認します。

myArray instanceof Array; // true
myArray instanceof Object; // true

このメソッドには次の機能もあります制限事項:

  • リテラル値 (数値、文字列など) には機能しません。
  • 異なるウィンドウ オブジェクトでは機能しない可能性があります。

コンストラクタープロパティの Name プロパティの使用

開始IE9 では、オブジェクトのconstructor.name プロパティを使用してコンストラクター関数の名前を取得できます。

myArray.constructor.name; // "Array"

ただし、このメソッドは Internet Explorer の以前のバージョンでは信頼できません。

Object.prototype.toString の使用

Object.prototype.toString メソッドは、オブジェクトの型の文字列表現を返します。

Object.prototype.toString.call('abc'); // "[object String]"
Object.prototype.toString.call(/abc/); // "[object RegExp]"
Object.prototype.toString.call([1, 2, 3]); // "[object Array]"

このメソッドは、すべての組み込み型の型名を取得するために使用できます。ただし、すべてのユーザー定義型に対しては「Object」が返されます。

注意

オブジェクトの型は、その方法によって変わる可能性があることに注意することが重要です。構築されています。たとえば、関数が匿名で定義されている場合、そのコンストラクター プロパティは Anonymous に割り当てられます。

以上がJavaScript オブジェクトの型名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。