Bio: Call by value - na klar!

Beitrag lesen

Die Pascalprogrammierer...

nun, aus irgendeinem Grund gilt Pascal als besonders klar und strukturiert.
Aber wenn doch, wie ich sage, in JS alle Objekte GLOBAL sind, dann kannst Du natuerlich in der Funktion darauf zugreifen. und obj ist halt KEIN Wert, sondern eine Referenz auf ein Objekt, also quasi auf eine Struktur, die ein Feld value hat. Wenn Du diese Referenz uebegibst, ist es natuerlich call by reference.

Deine Funktion

function doit(obj)
{  obj.value="ABC" }

waere, wenn es anders waere, auch ziemlicher Quatsch... denn dann waere obj eine lokale numerische variable, die gar kein unterobjekt haette. Oder hast Du eine Struktur oder sowas definiert? Nein! Das wuerde also auch in Pascal keinen Sinn machen, was Du da fabriziert hast.

Schreib einfach im Quellcode obj.value = doit (obj.value), und Du hast Dein Call by Value.
Und auch wenn der Mann schreibt, dass bei JS im allgemeinen oder sonstwie call by value herrschen wuerde, dann schliesst das ein anwenden von call by reference sicher nicht aus.

Im uebrigen empfehle ich ein besseres Buch ueber JS oder einen Kurs in C.

Bio