2016-11-12 11 views
0

クラスコンストラクタがオブジェクトを構築せずに別のクラスを拡張するかどうかを確認するにはどうすればよいですか? IEはコンストラクタ参照によって生成されます。クラスコンストラクタが別のクラスを継承しているかどうかをチェック

class A { 

} 

class B extends A { 

} 

var b = B; 

if(typeof b === B) 
+0

あなたは 'B = B'を行うと 'B'と 'B'が同じ値を持っているので、それは常にこのように、' typeof演算のB === typeofをB'となります同じ 'typeof'。また、任意のコンストラクタの 'typeof'は常にfunctionです。 – jfriend00

+1

これは重複しているようですね。 – loganfsmyth

+0

正しい。答えは '' A.prototype instanceof B' – user2410532

答えて

0

あなたは以下のようにinstanceofの助けを借りてこれを確認することができます。

class A { 
 

 
} 
 

 
class B extends A { 
 

 
} 
 

 
class C { 
 

 
} 
 

 

 
console.log(B.prototype instanceof A); 
 
console.log(C.prototype instanceof A); 
 

 
// With instance 
 
var b = new B(); 
 

 
console.log(b instanceof B); 
 
console.log(b instanceof A); 
 
console.log(b instanceof C);

+0

私はこれを私の質問に追加します - しかし、私はオブジェクトが構築されていないことを知る必要があります – user2410532

+0

@ user2410532このコードを更新しましたよ見てください – Aruna

+0

@ jfriend00スニペットを実行し、 – Aruna

関連する問題