|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Bonjour à tous,
je viens d'utiliser une fois encore la fameuse ligne de récursion d'une fonction : Code :
Code :
nous arrivons maintenant à mon passage préféré, l'ajout du code très très utile arguments; corrige miraculeusement le bug (sur les 3 navigateurs) placé indifférement avant, après ou pendant(arguments=recurse(); ou recurse(arguments);) l'appel de "recurse": Code :
je trouve cette solution effroyablement moche, il est donc de bon ton de trouver un compromis qui garderai notre appel "simple" mais fonctionnel, voici donc la solution finale que je vous propose, en utilisant le mot "arguments" comme paramètre : Code :
Et finalement pour ceux qui souhaiteraient conserver et utiliser l'objet "this" dans leurs appels récursifs : Code :
Willpower. edit:je vous ai proposé la version "basique" qui considère qu'on a 2 arguments par appel, mais on pourrait concevoir un découpage de récursion sur plus de 2 arguments où le nombre de paramètre serait passé en argument à la fonction recurse. aussi, l'ordre des appels récursif se fait de droite à gauche et l'opération doit être commutatif pour un bon résultat attendu. ---------------------------- en résumé : (testé sous : IE, firefox, chrome, safari & opera) Code :
|
||||||||||||
|
|
10
|
|
|
#2 | |||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
'caller', 'callee', et 'arguments' c'est obsolète.Citation:
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|||
|
10
|
|
|
#3 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
oui, une simple boucle fait aussi l'affaire, mais en général, j'ai tendance à souvent utiliser la récursion pour la facilité de codage.
mais la ligne en javascript est vraiment longue donc je l'ai simplement rendu appelable via une fonction. le dernier usage que j'en ai fait : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com