Für die Benutzerfreundlichkeit habe ich eine Funktion, die zuerst ein optionales Argument vor dem erforderlichen Argument erhält. Zum Beispiel:Optionales Argument zuerst in JavaScript
ns.myFunction('optional arg', function(){
//the required callback
});
ich dies zu tun, anstatt Sie folgendermaßen vorgehen, da der Rückruf Körper lang sein könnte, und der Benutzer könnte vergessen, die standardmäßig auf die optionalen Argumente außer Kraft zu setzen:
ns.myFunction(function(){
//the required callback
}, 'optional arg');
Aktuell ich tue dies zu überprüfen:
function myFunction(first, second) {
//if second is undefined and first is a function
if (typeof second === 'undefined' && typeof first === 'function') {
second = first;
}
}
Fragen
- Ist das der richtige Weg?
- Wie würde ich es tun, damit es skaliert, vor allem, wenn N optionale Argumente vor dem erforderlichen Argument waren?
Warum würden Sie die optionalen Argumente nicht am * Ende * der Argumentliste platzieren? Das ist in JavaScript aufgrund der Semantik von '.bind()' nützlicher. Die "stabileren" Argumente sollten an erster Stelle stehen, wobei die Wahrscheinlichkeit größer ist, dass sie am Ende variieren oder fehlen. – Pointy
@Pointy Ich bin nur neugierig, wie Bibliotheken es so machen und ob es eine richtige Methode gibt. Zum Beispiel hat jQuery 'extend' ein Deepcopy-Flag, das optional in der allerersten Argumentliste liegt. – Joseph
Wie wäre es mit 'Argumente [..]'? Würde ich nicht durch das Array iterieren und bei der ersten 'typeof arguments [i] === 'function'-Hilfe stoppen? – SuperSaiyan