Verwenden Sie die Argumente Parameter ... In JavaScript sind Sie nicht alle Ihre erforderlichen Parameter im Funktionsbaustein selbst zu definieren. So zum Beispiel die folgenden Aufruf:
myFunction(arg1, arg2, arg3, arg4);
legal an die folgende Funktion übergeben werden:
myFunction() {
// do stuff here...
}
, wenn ich das tue, lege ich in der Regel einen Kommentar in den Pars I, um anzuzeigen, erwarte Variable Argumente:
myFunction (/* I am expecting variable arguments to be passed here */) {
// do stuff here...
}
Dann können Sie diese Argumente wie folgt zugreifen:
myFunction (/* I am expecting variable arguments to be passed here */) {
if (arguments.length == 0) {
// naughty naughty, you were supposed to send me things...
return null;
}
myExpectedFirstArgument = arguments[0];
// maybe do something here with myExpectedFirstArgument
var whatEvah:String = myExpectedFirstArgument + ": "
for (i=1;i<arguments.length;i++) {
// now do something with the rest of the arguments, one
// at a time using arguments[i]
whatEvah = whatEvah + " and " + arguments[i];
}
// peace.
return whatEvah;
}
Wallah, variable Argumente.
Aber mehr auf den Punkt Ihrer Frage, ich glaube nicht, dass Sie tatsächlich variable Argumente senden müssen, noch gehen durch die Mühe des Erstellens von tatsächlichen JSON (das ist wirklich eine String-Interpretation eines Javascript-Objekts) erstellen und das eigentliche Objekt dann als assoziatives Array Referenz senden Sie Ihre Feldnamen und Feldwerte zu erhalten:
var x = {};
x.fieldName1 = value1;
x.fieldName2 = value2;
// ... etc ...
dann in Ihrer Funktion, die jetzt nur noch zwei Parameter benötigt:
myFunction(arg1, arg2) {
// do whatever with arg1
for (name in arg2) {
// name is now "fieldName1" or "fieldName2"
alert(name + ": " + x[name]);
}
}
this helps .
Danke Jeremy. Ich mag es wirklich, das Objekt zuerst zu erstellen und das Objekt weiterzugeben. Ich werde es auch an anderen Orten verwenden. –