[js] Donner une valeur par défaut à un paramètre ?

Donner une valeur par défaut à un paramètre ? [js] - HTML/CSS - Programmation

Marsh Posté le 10-07-2004 à 16:14:14    

Salut
 
J'ai cherché si c'était possible de donner une valeur par défaut à un paramètre d'une fonction et on dirait que c'est impossible. J'ai essayer function f(form,type, def='') et ca marche pas, la fonction n'affiche plus rien...(ca marche sans le param par défaut)...
 
Alors, possible ou pas ?

Reply

Marsh Posté le 10-07-2004 à 16:14:14   

Reply

Marsh Posté le 10-07-2004 à 22:49:20    

possible, mais un peu bidouille :

Code :
  1. function montest(obligatoire)
  2. {
  3.   var optionnel = 50;
  4.   if(montest.arguments.length == 2)
  5.     optionnel = montest.arguments[1];
  6.                                                                                
  7.   alert("> " + obligatoire + "," + optionnel);
  8. }
  9.                                                                                
  10. montest(5);
  11. montest(5, 3);

Reply

Marsh Posté le 11-07-2004 à 01:50:47    

Ben j'ai fait un truc que je trouve très bizarre mais qui a l'air de marcher :
function bidule(var1,var2)
Javascript ne bronche pas si j'appelle bidule('param1');
Ca me semble étonnant...

Reply

Marsh Posté le 11-07-2004 à 08:28:40    

gooopil a écrit :

Ben j'ai fait un truc que je trouve très bizarre mais qui a l'air de marcher :
function bidule(var1,var2)
Javascript ne bronche pas si j'appelle bidule('param1');
Ca me semble étonnant...


mon prends l'approche inverse, on passe plus de parametres que cités.
 
c'est vrai que c'est gore.

Reply

Marsh Posté le 11-07-2004 à 08:55:42    

function bidule(var1,var2) {
if(var2) fac=var2; else fac=50;
....
}

Reply

Marsh Posté le 11-07-2004 à 09:04:31    

l'inconvénient, c'est que si j'appelle bidule(3, 0), ca me fera la même chose que bidule(3, 50)


Message édité par lorill le 11-07-2004 à 09:04:42
Reply

Marsh Posté le 11-07-2004 à 09:21:54    

tiens même question pour du Java ?

Reply

Marsh Posté le 11-07-2004 à 09:52:53    

antsite a écrit :

tiens même question pour du Java ?

pas faisable, mais vu qu tu peux surcharger une méthode, tu peux le contourner :
 

Code :
  1. public void toto(int titi) {
  2.   toto(titi, 50);
  3. }
  4. public void toto(int titi, int tata) {
  5.   System.out.println("> " + titi + ", " + tata);
  6. }

Reply

Marsh Posté le 11-07-2004 à 10:10:40    

merci :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed