2016-11-12 120 views
0

如何檢查類構造函數是否擴展了另一個類而不構建對象? IE由構造函數引用。檢查類構造函數是否擴展了另一個類

class A { 

} 

class B extends A { 

} 

var b = B; 

if(typeof b === B) 
+0

執行完'B = B',那麼它將永遠是'的typeof b === typeof運算B'因爲'B'和'B'具有相同的值,因此,相同的'typeof'。另外,'typeof'的任何構造函數都是函數。 – 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

相關問題