我怎樣才能測驗一個實體是否屬于Object型別?如果我嘗試使用is運算子,所有的Object子類也會回傳true。
var o:Object={};
var s:Sprite = new Sprite();
trace(o is Object); /true
trace(s is Object); /true
我怎樣才能讓它只在實體是Object超類而不是它的無數個子類中的任何一個時回傳true呢?
uj5u.com熱心網友回復:
flash.utils.getQualifiedClassName(...)方法對于作為方法引數傳遞的實體和它的類都回傳準確的String表示。
import flash.utils.getQualifiedClassName;
var O:Object = {};
var S:Sprite = new Sprite;
var GQ:Function = getQualifiedClassName;
trace(GQ(O) == GQ(Object)); // true
trace(GQ(S) == GQ(Object)) ; / false
UPD:還有另一種方法,雖然我個人不太喜歡。你可以使用Object.constructor屬性,它可能指向給定實體的類構造器。
UPD:雖然我個人不太喜歡它。
function isObject(target: Object):Boolean>
{
return target.constructor == Object
}
trace(isObject(O)); // true
trace(isObject(S)); // false
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/319520.html
標籤:
上一篇:C# 正則運算式撰寫及驗證方法
