Vorheriges Thema

obj_set_methods

Nächstes Thema

obj_set_str_return

Diese Seite

obj_set_parent

obj_set_parent setzt das Parent-Objekt.

bool = obj_set_parent(obj, parent)

Returnwert

bool ist TRUE (1), wenn die Funktion erfolgreich war.

Parameter

obj

obj ist ein mit obj_create erzeugtes Objekt.

parent

parent ist ein mit obj_create erzeugtes Objekt.

Kommentar

Die obj_set_parent-Funktion kopiert die key-value-Paare von parent nach obj und speichert sich eine Referenz auf das Parent-Objekt. obj “erbt” dadurch alle Eigenschaften von parent.Wird dann eine Methode obj.name(1,2) aufgerufen, wird, falls die Methode nicht vorhanden ist, die Methode obj.parent.name(1,2) aufgerufen. Dies wird rekursiv mit allen parent-Objekten versucht obj.parent.parent.name(1,2).

Beispiel

Es soll ein Objekt erzeugt werden, das ein Attribut mit dem Namen type enthält. Dieses Objekt kann dann als Basis-Objekt für weitere Objekte verwendet werden.

def object_set_type(o, tp)
{
    o["$type"] = tp;
}
def object_get_type(o)
{
    return o["$type"];
}
def object_create(_type)
{
    o = obj_create();
    o["$type"] = _type;
    f = obj_create();
    f.__setprop__ = obj_create();
    f.__setprop__.type = "object_set_type";
    f.__getprop__ = obj_create();
    f.__getprop__.type = "object_get_type";
    o.set_methods(f);
    return o;
}
def my_obj()
{
    o = obj_create();
    p = object_create("my_obj");
    o.set_parent(p);
    return o;
}
o = my_obj();
print o.type

id-1665813