Rappels Javascript et paramètres optionnels
Si je crée une fonction qui prend deux paramètres obligatoires, l'un est un appel de retour, et un couple en option comment puis-je code en sorte que lorsque je l'appelle avec seulement les 2 paramètres obligatoires, il fonctionne.
Ex:
fonction save(couleur, taille, poids, callback) { ... }
Où la couleur et le rappel sont obligatoires et la taille et le poids sont facultatifs. Donc, si quelqu'un veut appeler cette fonction avec seulement la couleur et le rappel...
save('bleu', à la fonction(...) { ... }) { ... }
save('blue', 56, function(...) { ... }) { ... }
Mais il attribue la fonction de rappel de taille et de poids, comment puis-je résoudre ce problème à faire ce que je veux?
source d'informationauteur rvk
Vous devez vous connecter pour publier un commentaire.
JavaScript arguments doit être aligné sur les paramètres attendus par position, donc, laissant de côté un argument entre autres, qui sont passés n'est pas d'aller travailler. Une option est de passer des arguments optionnels dans un seul objet.
Passe comme ceci:
Un paramètre de l'objet permet de résoudre votre problème de bien, comme suit:
Utiliser comme ceci:
Vous pouvez vérifier
arguments.length
de voir comment de nombreux arguments ont été adoptées, et de vérifier sitypeof weight === 'function'
pour voir si un argument est une fonction de rappel ou non.À l'aide de cette information, vous pouvez comprendre ce qui s'était passé en et de ré-attribuer les paramètres comme nécessaire.
Vous pouvez le vérifier les arguments de types: http://jsfiddle.net/wknVA/.
Pour commencer, vous définissez la fonction de rappel par défaut à lui-même ou le plus proche en param jusqu'à la fin(la première) de l'option params,
ensuite, vous vérifiez si l'option paramètres sont définis comme des fonctions (le rappel) ou indéfini et il y a les valeurs par défaut ou définir à eux-mêmes.
Et utilisation:
En plus de SLaks réponse, il n'est pas toujours possible pour l'appelant à considérer qu'ils peuvent envoyer tout ce que les arguments qu'ils veulent, la documentation de la fonction dont les arguments sont optionnels est le meilleur moyen, pour l'appel de fonction réalisateur, type d'arg vérifier et de regroupement de l'option args à la fin de l'arg liste sont les autres. Faire deux options sont facultatives du même type demande de confusion.
Je recommande ArgueJS pour que!
Vous pouvez également vérifier le type de vos arguments en changeant
undefined
par souhaitée types.