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