1

null として設定されているカスタム オブジェクト変数があり、その型定義を確認したいとします。どうすればいいのですか?

var a:MyObject = null;

// how do I check if a is MyObject?
//
// a is MyObject == false
// a instanceof MyObject == false
// getQualifiedClassName(a) <-- Exception
// typeof(a) == "object"
// describeType(a) <-- Exception
// a.constructor <-- Exception
// a.prototype <-- Exception
4

1 に答える 1

0

質問の例のすべてがどのように機能するかを誤解していると思います。

変数に関連付けられている型はチェックしません。その変数に割り当てられたインスタンスの型をチェックします。あなたの例が意味をなさない理由の良い例を次に示します。

var prop:DisplayObject = new MovieClip();
trace(prop is MovieClip); // true

これがあなたが思ったように機能するなら、あなたは実際にfalseここにたどり着くでしょう.

変数を作成して型を指定するときに行っていることは、そのプロパティに割り当てられると予想されるインスタンスの型をコンパイラに伝え、期待される型のインスタンスではないものが割り当てられた場合にエラーをスローすることだけです。それに。

変数が期待する型を判断する方法はないと思います。さらに、変数が実行時に期待する型を確認する必要がある場合は、何かひどく間違ったことをしていると思います。

于 2013-06-23T23:03:31.600 に答える