2017-11-18 48 views
0

連續的基類,我想走到超類型鏈一路對象,所以給出:如何獲得在打字稿

abstract class Foo {} 

abstract class Bar extends Foo {} 

abstract class Baz extends Bar {} 

class Yolo extends Baz {} 

let yolo = new Baz() 

如何我可以得到所有的擴展類巴茲,酒吧, Foo和具有yolo實例的對象?

我看到了How to get the parent class at runtime,我不明白這對我有什麼幫助,我只能上一級。

回答

1

您可以使用getPrototypeOf先後走了超級鏈:

var ctor = yolo.constructor; 
while(ctor !== null){ 
    console.log(ctor); 
    ctor = Object.getPrototypeOf(ctor);  
} 

將輸出:

function Yolo() { … } 
function Baz() { … } 
function Bar() { … } 
function Foo() { … } 
function() { … } 
Object { … }