Ma conjecture est que ce n'est pas possible, mais je voudrais f
et f()
de faire la même chose.Comment implémenter des parenthèses optionnelles pendant un appel de fonction? (surcharge de fonction)
var f = function(str){ console.log(str||'foo'); }();
f; // wanted output: 'foo'
f(); // wanted output: 'foo'
f('bar'); // wanted output: 'bar'
Parce que f
n'est plus une définition de fonction, il ne semble pas possible de faire f()
, mais peut-être que je me manque quelque chose. Aucune suggestion?
Exactement, et je voudrais le surcharger :) – vol7ron
@ vol7ron: Cela ne fonctionnerait pas. Si 'f' était le même que' f() ', alors' f ('bar') 'serait le même que' f() ('bar') ', qui est le même que' f()() ('bar') ', qui est identique à' f()()() ('bar') '... et ainsi de suite, rendant impossible l'utilisation de paramètres dans un appel de fonction. – Guffa
Oui, il semble que tout le monde veut décrire ce qui se passe - je comprends ce qui se passe, c'est pourquoi j'ai posé la question. Vraiment, je suis curieux de savoir si le langage a évolué et si cela est maintenant possible, comme Ruby, comme [Adam] (http://stackoverflow.com/users/226476/adam-crossland) a souligné. – vol7ron