dedlfix: pass by reference in TypeScript Klassen

Beitrag lesen

Tach!

Ich hab irgendwo gelesen das man das nur als Objekten im Parameter einer Methode machen kann. Ich habs aber nicht hinbekommen. Mein Code ...

Javascript hat dieselbe Regel, nur dass man nicht explizit eine Referenz verlangen kann. Die gibts per se bei Objekten und nicht bei primitiven Typen.

Um das nochmal etwas klarer zu formulieren. PHP hat das übliche Verhalten bei der Übergabe von Parametern an Funktionen.

$baz = new stdClass;
$baz.qux = ...;

foo($baz);

function foo($bar) {
  $bar.qux = ...; // schreibt einen neuen Wert in $baz.qux
  $bar = ...; // überschreibt nur das lokale $bar; $baz bleibt unbehelligt
}

Das ist in einer vergleichbaren Form auch in anderen Sprachen implementiert, zum Beispiel in Javascript.

PHP hat nun noch eine zusätzliche Besonderheit mit dem &. Das heißt soviel wie: wenn du was mit der so erzeugten Variable machst, nimm nicht sie selbst, sondern das Ziel der Referenz - auch bei Zuweisungen. Man kann an eine solche Variable nun keinen anderen Wert mehr zuweisen oder per Zuweisung die Referenz aufheben. Nur unset() hilft noch, um diese referenzierende Variable zu entfernen.

dedlfix.