Mark: Variable an Funktion übergeben

Nabend da draussen!

Steh im Moment irgendwie auf der Leitung...

ich errechne einen Wert, z.B
var wert = 1+2;

und möchte dann diesen an eine Funktion übergeben...
window.setTimeout('meinefunction(wert)', 1000);

...geht nicht!

Gebe ich jedoch:
window.setTimeout('meinefunction(3)', 1000);

...funktioniert es, was mache ich falsch?

Bin mir sicher, dass ich da irgendwo einen saudummen Fehler mache..., kann mich trotzdem mal einer mit'm Zaunpfahl erschlagen?

Danke

  1. Hi,

    window.setTimeout('meinefunction(wert)', 1000);
    was mache ich falsch?

    Du gehst davon aus, die Variable 'wert' sei im globalen Scope verfügbar, was aber falsch ist. Arbeite entweder mit einer function(), oder nutze Stringverknüpfung.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      window.setTimeout('meinefunction(wert)', 1000);
      was mache ich falsch?

      Du gehst davon aus, die Variable 'wert' sei im globalen Scope verfügbar, was aber falsch ist. Arbeite entweder mit einer function(), oder nutze Stringverknüpfung.

      Cheatah

      Hab' gerade gefunden...., lasse ich var weg geht's

      also nicht

      var wert=1+2

      sondern

      wert = 1+2

      Danke und sorry

      1. Hi,

        Hab' gerade gefunden...., lasse ich var weg geht's

        das ist die schlechteste denkbare Lösung, weil Du so "irrtümlich" eine globale Variable deklariert hast. Wenn Du das möchtest, deklariere sie explizit im globalen Scope.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Hab' gerade gefunden...., lasse ich var weg geht's

          das ist die schlechteste denkbare Lösung, weil Du so "irrtümlich" eine globale Variable deklariert hast. Wenn Du das möchtest, deklariere sie explizit im globalen Scope.

          Cheatah

          O.K. dann muss ich wohl warten, bis mir jemand hilft. Danke schonmal für die Hinweise..., hätte ich mehr Ahnung könnte ich bestimmt was damit anfangen...

          Gruss, Mark

          1. Hi,

            Danke schonmal für die Hinweise..., hätte ich mehr Ahnung könnte ich bestimmt was damit anfangen...

            was verstehst Du denn nicht?

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              Danke schonmal für die Hinweise..., hätte ich mehr Ahnung könnte ich bestimmt was damit anfangen...

              was verstehst Du denn nicht?

              Cheatah

              »»

              "Stringverknüpfung" ... das ist das was ich nicht verstehe und wie soll ich in einer function arbeiten?

              In meinem Script wird die variable in einer Funktion erzeugt und an eine andere Funktion übergeben.

              1. Hi,

                "Stringverknüpfung" ... das ist das was ich nicht verstehe

                was ein String ist weißt Du? Wenn ja, dann weißt Du sicher auch, wie man zwei Strings miteinander verknüpft, also "zu einem einzigen String macht".

                und wie soll ich in einer function arbeiten?

                Anstatt des Strings, der Deinen zeitverzögerten Aufruf beinhaltet, gibst Du eine function() an. Mitten im window.setTimeout().

                Cheatah

                --
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. Nabend... (Nein, ich habe noch nicht aufgegeben)

                  was ein String ist weißt Du? Wenn ja, dann weißt Du sicher auch, wie man zwei Strings miteinander verknüpft, also "zu einem einzigen String macht".

                  Jo , ich weiss was ein String ist... nur warum sollte ich bei der o.g. Funktion  Strings verknüpfen? Die zu übergebene Variable besteht aus einer Zahl, weiter nix ?!

                  Anstatt des Strings, der Deinen zeitverzögerten Aufruf beinhaltet, gibst Du eine function() an. Mitten im window.setTimeout().

                  in meinem setTimeout wird bereits eine Funktion gestartet, in der die o.g. Variable mit übergeben werden soll,

                  Gruss Mark

                  1. Hi,

                    Jo , ich weiss was ein String ist... nur warum sollte ich bei der o.g. Funktion  Strings verknüpfen?

                    weil das erste Argument von window.setTimeout() (hier) ein String _ist_.

                    Anstatt des Strings, der Deinen zeitverzögerten Aufruf beinhaltet, gibst Du eine function() an. Mitten im window.setTimeout().
                    in meinem setTimeout wird bereits eine Funktion gestartet,

                    Nein, es wird ein String übergeben, der ausgeführt wird. Es gibt die Alternative, eine Funktion zu übergeben.

                    Cheatah

                    --
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
  2. » ich errechne einen Wert, z.B
    » var wert = 1+2;
    »
    » und möchte dann diesen an eine Funktion übergeben...
    » window.setTimeout('meinefunction(wert)', 1000);
    »
    » ...geht nicht!

    Hi!

    So geht's: window.setTimeout('meinefuntion('+wert+')', 1000);

    sonst bekommt Deine Funktion "meinefunktion" als Übergabewert "wert" übergeben und nicht den Wert von "wert", also 3.

    Viele Grüße
    Natsukawa