1

使用Google Closure繼承範例我怎麼能看到什麼類名或我怎麼能識別類,因爲object.constructor.name返回""並且縮小時不正確?如何識別縮小的Google Closure代碼中的課程?

其目的是執行代碼依賴於接口或繼承類的實現。此代碼是延伸Animal一個decorator類裏面,也:

var object = XXX; // of @type {Animal} 
switch (object.constructor.name) { 
    case 'Dog': 
     //... 
     break; 
    case 'Cat': 
     //... 
     break; 
} 
+0

我目前的解決方案是爲每個班級添加我自己的「標識符」。 – 2014-12-05 12:28:56

回答

3

我認爲這也將工作:

switch (object.constructor) { 
case Dog: 
    ... 
case Cat: 
    ... 
} 

或(有點醜陋,因爲你不能使用switch

if (object instanceof Dog) { 
    ... 
} else if (object instanceof Cat) { 
    ... 
} else if ...