Calocybe: Rueckgabe von Werten

Beitrag lesen

Hallo Sandy und Stefan!

Da waer aber noch ne Ergaenzung noetig. Sandy, vielleicht hast Du das mit dem Nichtveraendern in folgendem Zusammenhang gehoert:

var x, y;

function do_something(a, b) {
        a = b + 3;
        alert(a + "; " + b);    /* gibt 13; 10 */
        x = 20;
    }

x = 5; y = 10;
    alert(x + "; " + y);    /* gibt 5; 10 */
    do_something(x, y);
    alert(x + "; " + y);    /* gibt 20; 10 */

In diesem Beispiel wird zwar a innerhalb der Funktion geaendert, das hat aber keine Rueckwirkung auf die Variable, wo a urspruenglich herkommt, naemlich x. Anders bei x = 20, dort wird eben das einzige x im ganzen Script veraendert, und das merkt man dann auch ausserhalb der Fkt.

Soweit klar? Dann auf in den naechsten Level *g*

var x, y;

function do_something(x, y) {
        x = y + 3;
        alert(x + "; " + y);    /* gibt 13; 10 */
        x = 20;
    }

x = 5; y = 10;
    alert(x + "; " + y);    /* gibt 5; 10 */
    do_something(x, y);
    alert(x + "; " + y);    /* gibt immer noch 5; 10 */

Jetzt habe ich a und b durch x und y ersetzt. Und ich weise x innerhalb der Funktion einen neuen Wert zu, naemlich y + 3, was 13 ist. Trotzdem merkt man das ausserhalb der Funktion nicht. Der Grund ist, das es jetzt mehrere x gibt, und da hat das funktionslokale den Vorrang. In der Fkt. wird also das x veraendert, das vorher a hiess (siehste, Namen sind Schall und Rauch).

schade nur, dass das bedeutet, dass ich meinen fehler immernoch nicht gefunden habe... und es waere wohl schlecht moeglich einen 10 Seiten langen Sourcecode ins forum zu stellen zur allgemeinen begutachtung...

Vielleicht hilft Dir das ja weiter. Wenn nicht, speicher den Code in einer TXT ab, stell die ins Netz und poste die URL.

Calocybe