JavaScript の instanceof 演算子とは何ですか? 質問する

JavaScript の instanceof 演算子とは何ですか? 質問する

JavaScript のキーワードinstanceofは、初めて遭遇したときには非常に混乱を招く可能性があります。JavaScript はオブジェクト指向プログラミング言語ではないと考える傾向があるためです。

  • それは何ですか?
  • どのような問題を解決しますか?
  • いつが適切で、いつが不適切でしょうか?

ベストアンサー1

インスタンス

左側 (LHS) オペランドは、クラスの実際のコンストラクターである右側 (RHS) オペランドに対してテストされる実際のオブジェクトです。基本的な定義は次のとおりです。

現在のオブジェクトをチェックし、オブジェクトが指定されたオブジェクト タイプである場合は true を返します。

ここにあるいくつかの良い例以下は直接引用した例ですMozilla の開発者サイト:

var color1 = new String("green");
color1 instanceof String; // returns true
var color2 = "coral"; //no type specified
color2 instanceof String; // returns false (color2 is not a String object)

instanceof言及する価値があるのは、オブジェクトがクラスのプロトタイプから継承されている場合に true と評価されることです。

var p = new Person("Jon");
p instanceof Person

は を継承するので、はp instanceof Person真です。pPerson.prototype

OPのリクエストにより

サンプル コードと説明を添えた小さな例を追加しました。

変数を宣言するときは、特定の型を指定します。

例えば:

int i;
float f;
Customer c;

i上記では、、、fおよびという変数を示していますc。型はinteger、、floatおよびユーザー定義のCustomerデータ型です。上記のような型は、JavaScript だけでなく、どの言語でも使用できます。ただし、JavaScript では、変数を宣言するときに型を明示的に定義しないため、var xx は数値、文字列、またはユーザー定義のデータ型になります。つまり、instanceofオブジェクトが指定された型であるかどうかをチェックするので、上記のオブジェクトを取得して、Customer次の操作を実行できます。

var c = new Customer();
c instanceof Customer; //Returns true as c is just a customer
c instanceof String; //Returns false as c is not a string, it's a customer silly!

上記で、 がc型で宣言されていることを確認Customerしました。これを new して、 型かCustomerどうかを確認しました。確かに 型であれば、true が返されます。次に、引き続きCustomerオブジェクトを使用して、 かどうかを確認しますString。いいえ、絶対に ではありません。オブジェクトではなく、オブジェクトStringを new しました。この場合は、false が返されます。CustomerString

本当にそれだけ簡単です!

おすすめ記事