[...]
Außerdem finde ich, dass JavaScript hier einen Designfehler hat. Der String, in den ein Objekt zum Zwecke der Ausgabe oder Interpolation verwandelt wird, sollte standardmäßig irgendeinen einzigartigen Token, wie zum Beispiel die Speicheradresse des Objektes, enthalten.
Sprich ein Referenzscalar wie in Perl,oder?
Nein, das Äquivalent zu dem was ich meine ist in Perl ein sogenannter Stash.
Beispiel:
my $reference = { x => 42 }; # reference to an anonymous hash
my $stash = "$reference"; # string matching /^HASH\(0x[0-9a-fA-F]+\)$/
$reference ist für mich ein "Referenzskalar". $stash ist einfach nur eine Zeichenkette, die aber das Objekt, welches $reference referenziert, eindeutig identifiziert.