Surcharge de fonctions en Javascript - les Meilleures pratiques

Quel est le meilleur moyen(s) de faux surcharge de fonctions en Javascript?

Je sais qu'il n'est pas possible de surcharger des fonctions en Javascript comme dans d'autres langues.
Si j'ai besoin d'une fonction à deux utilisations foo(x) et foo(x,y,z) qui est le meilleur /le moyen privilégié:

  1. En utilisant des noms différents, en premier lieu,
  2. En utilisant des arguments optionnels comme y = y || 'default'
  3. En utilisant le nombre d'arguments
  4. La vérification des types d'arguments
  5. Ou comment?
  • Il serait peut-être utile de se demander pourquoi vous pensez que vous avez besoin de surcharge de fonctions pour commencer. Je pense que nous permettra de nous rapprocher d'une solution réelle.
  • C'est fermé, mais je ne les suivants: cette.sélectionner = { exemple: selectByInstance, // la Fonction du texte: selectByText, // valeur de la Fonction: selectByValue // Fonction };
  • Ma réponse montre comment faire moment de l'exécution de la fonction de surcharge, il a une vitesse de peine et je ne le conseille pas de le faire pour l'obtenir autour de Javascript du cahier des charges. La fonction de surcharge est vraiment un moment de la compilation de la tâche, j'ai seulement fournir la réponse à des fins d'enseignement et de laisser à votre propre discrétion quant à savoir si ou de ne pas l'utiliser dans le code.
  • Juste au cas où il est utile, j'ai construit un léger js cadre qui permet en fonction de leur type surcharge de la méthode. Évidemment, les mêmes restrictions s'appliquent en ce qui concerne les performances, mais il a bien fonctionné pour moi jusqu'à présent et a encore beaucoup de place à l'amélioration: blog.pebbl.co.royaume-uni/2013/01/describejs.html#methodoverloading
InformationsquelleAutor hamdiakoguz | 2009-01-19