Günther S: Variablenwerte für nächsten Funktionsaufruf erhalten

Hallo zusammen,

ich versuche gerade, mir etwas JS anzueignen und habe folgendes Problem:

Ich hätte gerne, dass Variablen und Objekte auch für folgende Funktionsaufrufe derselben Funktion erhalten bleiben (natürlich ohne, dass zwischenzeitlich die ganze Seite neugeladen wird).

d.h. z.B.:

  
function test()  
{  
   if(typeof(num) != "number")  
   {  
       num = 1;  
   }  
   num++;  
   alert(num);  
}  

wenn ich jetzt diese Funktion 5 mal hintereinander aufrufe, ist aber num jedes mal "2" - und nicht (wie ich mir das wünsche) 2, 3, 4, 5 und 6.

Kann man das irgendwie lösen?

Gruß,
Günther

  1. Hi,

    Kann man das irgendwie lösen?

    Z.B. mit num als globaler Variable:

    var num;
    function test()

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hallo,

      Z.B. mit num als globaler Variable:

      var num;
      function test()

      danke erstmal für diesen Denkanstoß.
      Allerdings erfüllt dieser Weg noch nicht ganz mein Vorhaben - ich habe mein Bsp. wohl hier zur Demonstration zu sehr vereinfacht. In Wirklichkeit handelt es sich um ein Array:

        
        
      var testarray = new Array();  
      function test(arg1, arg2, ...)  
      {  
         testarray[arg1] = new Object(); // diese Zeilen sollen nur ausgeführt werden,  
         testarray[arg1] = 1;            // falls es dieses Objekt noch nicht gibt.  
         testarray[arg1]++;  
         alert(testarray[arg1];  
      }  
      
      

      Kann man das bewerkstelligen?

      Gruß,
      Günther

      1. Hi,

        In Wirklichkeit handelt es sich um ein Array:

        Nein, in Wirklichkeit handelt es sich um ein Objekt.

        var testarray = new Array();

        var testarray = new Object();

        testarray[arg1] = new Object(); // diese Zeilen sollen nur ausgeführt werden,

        Ersatzlos streichen.

        testarray[arg1] = 1;            // falls es dieses Objekt noch nicht gibt.

        Vorher klären, ob es testarray[arg1] schon gibt

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. wenn ich jetzt diese Funktion 5 mal hintereinander aufrufe, ist aber num jedes mal "2" - und nicht (wie ich mir das wünsche) 2, 3, 4, 5 und 6.

    bei mir klappt das einwandfrei.

    Struppi.

    --
    Javascript ist toll (Perl auch!)