Gibt eine Zahl ungleich 0 zurück, wenn ein bestimmter Wert von einem bestimmten Basisobjekt abgeleitet ist.
HatBasis := HasBase(Wert, BasisObj)
Ein Wert beliebigen Typs.
Typ: Objekt
Ein potentielles Basisobjekt, das getestet werden soll.
Typ: Integer (boolesch)
Diese Funktion gibt 1 (true) zurück, wenn BasisObj in der Kette von Basisobjekten von Wert ist, andernfalls 0 (false).
Der folgende Code entspricht in etwa dieser Funktion:
MeinHasBase(Wert, BasisObj) { b := Wert while b := ObjGetBase(b) if b = BasisObj return true return false }
Zum Beispiel ist HasBase(Obj, Array.Prototype)
True, wenn Obj eine Instanz von Array oder einer abgeleiteten Klasse ist. Die gleiche Prüfung wird von Obj is Array
durchgeführt, allerdings können Instanzen auf anderen Instanzen basieren, während is
eine Klasse benötigt.
HasBase akzeptiert sowohl Objekte als auch primitive Werte. Zum Beispiel gibt HasBase(1, 0.base)
True zurück.
Objekte, Obj.Base, ObjGetBase, HasMethod, HasProp