cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 12 déc. 2007 à 09:20
Hello,
si au départ tu ne connais pas le nombre exacte de parametres qui seront transmis à la fonction, il va falloir ruser...
et utiliser l'objet arguments (qui contient un tableau avec les valeurs de tous les parametres transmis à la fonction)
function test()
{
for (var i:Number=0;i<arguments.length; i++) {
var param:Number=arguments[i]
arguments[i]+=10;
trace("Parametre "+i+": valeur transmise=" + param + " nouvelle valeur ="+arguments[i])
}
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 13 déc. 2007 à 18:24
pourquoi "a" n'est pas egal a arguments[0] ?
-> Dans mon exemple, comme on ne sais pas le nombre d'arguments qui vont être passé à la fonction, on ne les defini PAS
function test() { ...
arguments regroupe dans un tableau les VALEURS transmises à la fonction mais evidemment pas leurs noms.
voila pourquoi "a" n'est pas egal à arguments[0] ?
Dans ton exemple, pourquoi "a" n'est pas egal a arguments[0] ?
tu as transmis a=undefined ensuite tu modifies argument[0]=0 en lieu et place de undefined (valeur initiale arguments[0])
Seulement a et arguments[0] sont deux variables différentes.
Pour que a soit égale à 0 si undefined est transmis tu dois faire après argument[0]=0
a=argument[0], b=argument[1],...
if (arguments[i]==undefined) {arguments[i]=0;}
arguments[i] ne sera jamais undefined puisque arguments regroupe les valeurs transmises,
sauf si c'est effectivement la valeur undefined qui est passée à la fonction comme dans test(undefined,1,"test");
-je voir que tu precise var param:Number je voudrais savoir si ca optimise le execution du script ou pas ?
Non, dans mon exemple c'était uniquement pour pouvoir regrouper dans la fonction trace() la valeur transmise et la valeur incrémentée.
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 13 déc. 2007 à 18:22
N'ayant pas spécialement pour habitude de répondre au questions privées (autant en faire profiter tous le monde) je reprend ici la 'suite' de la discussion :
Bonjour,
je te remercie de ta reponse sur le forum.
mes j'aurai encore une petite question :
-pourquoi "a" n'est pas egal a arguments[0] ?
car j'aimerai remplacé a par 0 si il n'est pas defini.
-je voir que tu precise var param:Number je voudrais savoir si ca optimise le execution du script ou pas ?
(je met souvent param=)