instanceof演算子
instanceof
演算子は、特定のオブジェクトがクラスのインスタンスかをチェックするJavaScriptの演算子です。
構文
js
オブジェクト instanceofクラス
js
オブジェクト instanceofクラス
引数
- オブジェクト: 検査するオブジェクトです。
- クラス: 検査対象のクラス名です。
例
ts
classClassA {}classClassB {}consta = newClassA ();console .log (a instanceofClassA );console .log (a instanceofClassB );
ts
classClassA {}classClassB {}consta = newClassA ();console .log (a instanceofClassA );console .log (a instanceofClassB );
継承とinstanceof
instanceof
は継承関係をチェックすることもできます。たとえば、次のようにChild
クラスのインスタンスがParent
クラスのインスタンスかをチェックすることができます。
ts
classParent {}classChild extendsParent {}constchild = newChild ();console .log (child instanceofParent );
ts
classParent {}classChild extendsParent {}constchild = newChild ();console .log (child instanceofParent );
instanceof
の反転
instanceof
演算子の結果を反転させる場合は、値 instanceof クラス名
の句全体をカッコで囲った上で、否定演算子!
を先頭につける必要があります。
ts
if (!(myInstance instanceofMyClass )) {// myInstanceがMyClassではないときの処理}
ts
if (!(myInstance instanceofMyClass )) {// myInstanceがMyClassではないときの処理}
抽象クラスとinstanceof
TypeScriptには抽象クラスがあります。instanceof
演算子は抽象クラスについても使うことができます。
ts
abstract classAbstractClass {}classConcreteClass extendsAbstractClass {}constobj = newConcreteClass ();console .log (obj instanceofAbstractClass );
ts
abstract classAbstractClass {}classConcreteClass extendsAbstractClass {}constobj = newConcreteClass ();console .log (obj instanceofAbstractClass );