Javascript: Array aus Funktion auslagern
Paul
- programmiertechnik
Moin,
in meiner function: eine array, eine for-Schleife. Die Schleife läuft das array durch und macht halt ein paar Dinge :-)
Da die Funktion einige Male (auch nach Bentzer-Mausklick) ausgeführt wird, möchte ich das array aus der Funktion raus haben, damit es nicht jedes mal neu erstellt werden muss.
Ist hier ein globales array richtig oder kann man das auch anders machen?
Danke,
Paul
Hi,
wenn du das Array nur in dieser Funktion brauchst könntest du das so machen:
var myFunction = (function(){
var myArray = [];// Hier der Code der nur einmal ausgeführt werden soll. Also z.B. das initialisieren des Arrays
return function(){// Das hier ist die eigentlich function, in ihr kannst du auf myArray zugreifen
for( … ){
…
}
}
})()
Ob das jetzt die Lösung für dein Problem ist kann ich nicht sagen, da mir da der Kontext dazu fehlt.
~dave
Entschuldige meine Unkenntnis.
Aus Deinem Beispiel sollte am Besten einmal 'a', 'b', 'c', 'for', 'for, 'for' rauskommen. bei jedem anderen Aufruf halt dann nur 'c', und 'for', 'for', 'for'.
var myFunction = (function(){
alert('a');
var myArray = [1, 2, 3];// Hier der Code der nur einmal ausgeführt werden soll. Also z.B. das initialisieren des Arrays
alert('b');
return function(){// Das hier ist die eigentlich function, in ihr kannst du auf myArray zugreifen
alert('c');
for(i in myArray){
alert('for');
}
}
})()
Hi,
Aus Deinem Beispiel sollte am Besten einmal 'a', 'b', 'c', 'for', 'for, 'for' rauskommen. bei jedem anderen Aufruf halt dann nur 'c', und 'for', 'for', 'for'.
das tuts auch, du musst die Funktion dann nur noch aufrufen:
myFunction();
Jedes mal wenn du das tust, wird 'c', 'for', 'for', 'for' ausgegeben.
~dave
das tuts auch, ...
... bei mir :-)
Vielen Dank! Genau das was ich gesucht habe!