Est-il possible d'avoir plus d'un constructeur pour une classe en javascript? C'est-à-dire un avec zéro paramètres, un avec un, un avec deux, etc.
si c'est le cas, comment?
Merci!
Non, Javascript ne prend pas en charge la surcharge de fonctions.
Cependant, à l'intérieur de chaque fonction, vous avez accès à un objet arguments
, qui contient tous les arguments fournis à la fonction, déclarés ou non. Vous pouvez simplement l'examiner et décider de ce que vous voulez faire exactement dans votre constructeur.
Exemple malin et non raffiné:
function Foo() { function singleParamConstructor(foo) { ... } function twoParamConstructor(foo, bar) { ... } switch (arguments.length) { case 1 : singleParamConstructor(arguments[0]); break; case 2 : twoParamConstructor(arguments[0], arguments[1]); break; ... } }
Cela pourrait aider: les types de paramètres du constructeur JavaScript