HasBase

Gibt eine Zahl ungleich 0 zurück, wenn ein bestimmter Wert von einem bestimmten Basisobjekt abgeleitet ist.

HatBasis := HasBase(Wert, BasisObj)

Parameter

Wert

Ein Wert beliebigen Typs.

BasisObj

Typ: Objekt

Ein potentielles Basisobjekt, das getestet werden soll.

Rückgabewert

Typ: Integer (boolesch)

Diese Funktion gibt 1 (true) zurück, wenn BasisObj in der Kette von Basisobjekten von Wert ist, andernfalls 0 (false).

Bemerkungen

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

Beispiele

Zeigt die Verwendung dieser Funktion.

DieBasis := {Schlüssel: "Wert"}
Abgeleitet := {base: DieBasis}
MsgBox HasBase(DieBasis, Abgeleitet) ; 0
MsgBox HasBase(Abgeleitet, DieBasis) ; 1