dedlfix: Primitives / Object Referenz

Beitrag lesen

Tach!

ich frage mich gerade, wie das denn nun genau mit Object Referenzen funktioniert:

Grundsätzlich: einfache Werte werden kopiert, Objekte referenziert.

ich habe ein Object Literal foo mit einer Eigenschaft bar. Diese Eigenschaft soll den boolean Wert einer Variable foobar beinhalten.

var foobar = false;
var foo = {
    bar : foobar
}

foo.bar hat eine Kopie des Wertes von foobar bekommen. Was auch immer nun mit foobar passiert, es hat keine Auswirkungen auf foo.bar. Die Kopien sind sozusagen selbständig.

Aber wie bekomme ich es hin, dass sich beide Werte mit einem Klick ändern?

Du brauchst eine Referenz. Die bekommst du aber nicht auf einfache Typen. Du kannst dir nur ein Container-Objekt bauen. In dem steckt dein boolscher Wert als Eigenschaft. Wenn du nun den Container weitergibst, wird eine neue Referenz erzeugt, die auf daselbe Container-Objekt zeigt. Du musst dann aber auch immer in den Container greifen, um den Wert zu bekommen.

dedlfix.