Was ist eine gängige Methode zur Implementierung einer JavaScript-Funktion, deren mittlere Argumente optional sind, aber das letzte Argument benötigt wird? Eine idiomatische ES2015-Lösung ist bevorzugt.Idiomatische Möglichkeit, mittlere Argumente optional zu machen
Z. B., ich sehe Funktionen häufig, die auf verschiedene Weise aufgerufen werden kann, wie folgt aus:
func(firstArg, callback);
func(firstArg, options, callback);
Also eigentlich das, was passiert ist, dass die Anzahl der Argumente, die Interpretation jedes Argument betrifft.
Ich weiß, ich kann damit umgehen, indem die Länge der Argumente, so etwas wie diese Überprüfung:
// func(firstArg, options, callback);
// or: func(firstArg, callback);
function (firstArg, ...args) {
let options = {};
if (args.length > 1) {
options = args.shift();
}
let callback = args[0];
// And do stuff ...
}
Aber es scheint klobig. Gibt es einen besseren Weg, dies zu tun?
Übergeben Sie stattdessen ein Objekt. – Andy
Das Argument 'options' ist das Objekt. – brianmearns
Die meisten Sprachen erzwingen ein * nur optionale Argumente können einer optionalen Argument * Regel für variadische Funktionen folgen, um diese Verwirrung/Ungeschicklichkeit an erster Stelle zu vermeiden. –