Aufruf einer Funktion mit variabler Argumenteliste
Moosi
- javascript
0 Jörg Peschke0 peterS.
0 Siechfred0 LenaLuna
Tach,
ich steh momentan auf der Leitung und bitte um Hilfe.
Also ich habe eine funktion innerhalb der eine Argumenteliste die variabel lang sein soll in einer for-schleife zusammengebaut wird.
Was dabei rauskommt möchte ich als funktionsargument für den Aufruf einer anderen funktion verwenden. Ich hab erst versucht einen String zunehmen. Nachdem das nicht funktionierte habe ich ein array und ein Objekt mit Eigenschaften probiert. Aber immer kommt drüben anscheinend nur ein kommagetrennter String an und keine Einzelargumente die ich mit arguments[] auswerten könnte. Es gibt also nur arguments[0], wo alles drinnen steht!
Mit der Bitte um Ideen
Moosi
Moin,
Ich habe dunkel sowas in Erinnerung, das ich das Problem auch einst hatte, und an einer "sauberen, intelligenten" Lösung kläglich gescheitert bin.
Soviel ich weiss, habe ichs damals mit Eval gemacht:
var commandstring = "func(";
for (var i = 0; i < 5; i++) {
commandstring += i+',';
}
commandstring += ')';
eval(commandstring);
function func () {
for (var argument = 0; argument < func.arguments.length;
argument++) {
...
}
}
oder so ähnlich.
Aber wie man hier so schön sagt
"Schee is anderscht"
Gruesse,
Joerg
gruss Joerg, hallo Moosi,
Ich habe dunkel sowas in Erinnerung, das ich das Problem auch einst hatte,
und an einer "sauberen, intelligenten" Lösung kläglich gescheitert bin.Soviel ich weiss, habe ichs damals mit Eval gemacht:
*reusper*
Aber wie man hier so schön sagt
"Schee is anderscht"
und ideal und damit auch "schee" sind in diesem fall die
fuer "Function"-objekte standardmaessig verfuegbaren
methoden "apply" bzw. "call" - eine umfassendere
antwort mit beispielen steht schon im archiv unter:
http://forum.de.selfhtml.org/archiv/2004/8/t88305/#m526417
by(t)e by(t)e - peterS. - pseliger@gmx.net
Привет Moosi.
Also ich habe eine funktion innerhalb der eine Argumenteliste die variabel lang sein soll in einer for-schleife zusammengebaut wird.
In welcher Form?
Was dabei rauskommt möchte ich als funktionsargument für den Aufruf einer anderen funktion verwenden. Ich hab erst versucht einen String zunehmen. Nachdem das nicht funktionierte habe ich ein array und ein Objekt mit Eigenschaften probiert. Aber immer kommt drüben anscheinend nur ein kommagetrennter String an und keine Einzelargumente die ich mit arguments[] auswerten könnte. Es gibt also nur arguments[0], wo alles drinnen steht!
Wenn du so eine Funktion hast:
function argumente() {
alert(argumente.arguments.length);
}
kannst du ihr alles übergeben, was dir in den Sinn kommt: Strings, Objekte usw., ggf. auch mehrere davon oder typengemischt. Der Fehler muss also woanders liegen, ein wenig Quelltext wäre also hilfreich.
Дружба!
Siechfred
hallo Moosi,
du kannst doch innerhalb deiner funktion die die argumente bildet diese in an array schreiben.
function fu() { var param = [];
for (var i = 0; i < 10; i++) param[i] = i;
fu_2(param); }
in der fu_2 greifst du dann mit
for (var i = 0; arguments[0].length; i++) alert(arguments[0][i]);
auf die einzelnen parameter zu.
ich persönlich habe mir immer angewöhnt an funktion nur noch arrays zu übergeben.
gruss LenaLuna