2009-12-30 30 views

回答

1

這並不理想,但你可以用「是」經營者。把它投入到其他語句的開關中去計算出來。

if(obj is ClassA) { 
    //sweetness 
} else if (obj is ClassB) { 
    //awesomeness 
} 

typeof將不起作用,正如其他答覆中所建議的。它可能會在所有情況下返回「對象」。 instanceof將工作。

+0

所以,我將如何實現了 「是」 或case語句instanceof的? – numerical25 2009-12-30 20:14:05

+0

雅不使用案例,使用if else。如果您使用getQualifiedClassName(),則可以使用開關,但只要使用其他開關,則更簡單。 – 2009-12-31 19:04:21

0

你可以通過getQualifiedClassName()來獲取對象的類名。您還可以使用describeType(),它可以更全面地描述對象的所有方法和屬性。

有一個關於信息都在這裏: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html

它聽起來並不像理想的情況下,雖然。你可能想要做一些事情,你可以規範你處理所有物品的方式。例如:

public interface IObject { 
    function doSomething():void; 
} 

則...

function myMethod(obj:IObject):void { 
    obj.doSomething(); 
} 
+0

這聽起來像個好主意。 BUt我想用obj做一些事情,根據類型將它存儲在特定的變量中。所以我需要使用case語句來找出它是什麼類型。試圖弄清楚如何將is或instanceof應用於case語句。 – numerical25 2009-12-30 20:41:19

+0

它似乎無法從Interface數據類型中調用方法,爲了使其工作,我必須將其轉換回原始類型。換句話說。 iobj.doSomething(); 不起作用。但是Object(iobj).doSomething();確實。我錯過了什麼? – numerical25 2009-12-30 22:08:00