Alut,
C'est bien connu, le JavaScript n'autorise pas la sp�cification explicite de passage par valeur ou par r�f�rence, comme cela se fait dans d'autres langages.
Mais dans le cas d'une fonction renvoyant plusieurs objet, il est interessant de pouvoir le faire.... mais JavaScript ne permet pas de l'exprimer.
On peut contourner le probl�me en profitant du fait que JavaScript passe toujours certains argument par r�f�rence : c'est le cas des objet et des tableaux.
Si par exemple une fonction doit renvoyer deux tableaux, alors on peut d�clarer la fonction comme recevant deux tableaux, et on prendra soin de cr�er deux tableaux vides que l'on passera � la fonction. Car bien que le fonction ne puisse pas cr�er elle-m�me ces deux tableaux, ou plut�t, bien qu'elle ne pourrait pas renvoyer par r�f�rence deux tableaux qu'elle aurait cr��, elle peut tout de m�me modifier deux tableaux qui lui sont passer automatiquement par r�f�rence (le passage ne peut se faire que dans un sens). On pourra faire de m�me avec des objet que l'on cr�era vide pour les passer � la fonction. Notez que les cha�nes de caract�re, qui sont � immutable �, ne peuvent pas se voir appliquer cette m�thode, pas plus que les type simple non-plus.
Pour �viter les ennuie, il faut �crire un commentaire en ent�te de la fonction, qui pr�cise que les objet ou tableaux doivent �tre cr�er par l'appelant (on �vite ainsi des risques de mauvaises utilisation.... et comme toujours, on corrige par des commentaire ce que le typage ne permet pas d'exprimer).
Dans le cas d'une fonction renvoyant plusieurs �l�ment simple, il n'y a pas d'autres possibilit� que de lui faire renvoyer un objet complexe int�grant tous ces �l�ments simples (cette m�thode alternative peut d'ailleur �tre employ� �galement avec les �l�ments complexes).
Oil�Z'�tes content ? ... sais pas, en tous cas moi ze le suis
Allez, �basoir
Partager