[Js] : Passer arguments a fonction anonyme
Résolu/Fermé
A voir également:
- [Js] : Passer arguments a fonction anonyme
- Arrondir js - Forum Webmastering
- Arrondi js ✓ - Forum Windows
- Copiez l'image dans un logiciel d'édition d'images ou un outil en ligne comme js paint ou pixlr e. remplissez les cases en suivant le code couleur. des cases supplémentaires vont se remplir automatiquement. que représente le dessin ? ✓ - Forum Windows
- Remplir une case de tableau avec une couleur grise avec texture de pointillés ✓ - Forum Photoshop
- Reproduction d'un dessin - Forum Graphisme
3 réponses
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
18 janv. 2012 à 11:09
18 janv. 2012 à 11:09
Ce code devrait fonctionner:
maListeDElements[i].onclick = (function(i) { return function() { maFonction(i); }; })(i);
Pignic13
Messages postés
6
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 avril 2012
18 janv. 2012 à 11:14
18 janv. 2012 à 11:14
Ça marche et c'est propre ! Parfait !
Merci beaucoup !
Merci beaucoup !
Chez moi cette forme n'a pas marché.
Voici ce qui a marché, et j'espère que ça répond à ton algorithme.
<script>
function maFonction(index,pfa2) {
alert(index+" & "+pfa2);
}
function blablablaPourRecupererMaListeDElements(){
return [1,2,3,4,5]
}
function main () {
var maListeDElements = blablablaPourRecupererMaListeDElements();
for (var i = 0; i < maListeDElements.length; ++i) {
maListeDElements[i] = (function(pfa) {
maFonction(i,pfa);
})(10);
}
}
main();
</script>
Remarque :
La forme suivante (sans parenthèses) marche aussi, mais elle réserve en permanence une place dans la mémoire pour la fonction et ses variables internes / locales, jusqu'à la fin de l'exécution de l'entièreté du programme, voire jusqu'à la fermeture du fichier le comportant, et parfois même cette partie de la RAM peut restée allouée jusqu'à ce qu'on éteigne l'ordinateur.
Elle est utile quand la fonction doit être utilisée à plusieurs (plus d'un) endroit(s) du programme, ou que les variables qu'elle crée ou qu'elle prépare doivent être utilisées à d'autres endroits du programme.
Tandis que la forme avec parenthèse ainsi que les variables qu'elle crée ou prépare ne restent en mémoire que temporairement, durant l'éxécution de la fonction puis cette zone de la mémoire est libérée une fois quitté la fonction (affectation dynamique de la mémoire).
Elle est utile seulement quand le bloc de fonction ainsi que ces variables internes / locales ne sont pas susceptibles d'être réutilisées ailleurs dans le corps du programme. Aussi bien le code de la fonction que ces variables disparaissent aussitôt l'exécution de la fonction quittée.
Si la fonction anonyme n'utilise aucune variable, on peut peut-être utiliser un code inline, mais c'est fort possible que la fonction inline laisse des garbages après sa traversée (exécution).
maListeDElements[i] = function(pfa) {
maFonction(i,pfa);
}(10);
Voici ce qui a marché, et j'espère que ça répond à ton algorithme.
<script>
function maFonction(index,pfa2) {
alert(index+" & "+pfa2);
}
function blablablaPourRecupererMaListeDElements(){
return [1,2,3,4,5]
}
function main () {
var maListeDElements = blablablaPourRecupererMaListeDElements();
for (var i = 0; i < maListeDElements.length; ++i) {
maListeDElements[i] = (function(pfa) {
maFonction(i,pfa);
})(10);
}
}
main();
</script>
Remarque :
La forme suivante (sans parenthèses) marche aussi, mais elle réserve en permanence une place dans la mémoire pour la fonction et ses variables internes / locales, jusqu'à la fin de l'exécution de l'entièreté du programme, voire jusqu'à la fermeture du fichier le comportant, et parfois même cette partie de la RAM peut restée allouée jusqu'à ce qu'on éteigne l'ordinateur.
Elle est utile quand la fonction doit être utilisée à plusieurs (plus d'un) endroit(s) du programme, ou que les variables qu'elle crée ou qu'elle prépare doivent être utilisées à d'autres endroits du programme.
Tandis que la forme avec parenthèse ainsi que les variables qu'elle crée ou prépare ne restent en mémoire que temporairement, durant l'éxécution de la fonction puis cette zone de la mémoire est libérée une fois quitté la fonction (affectation dynamique de la mémoire).
Elle est utile seulement quand le bloc de fonction ainsi que ces variables internes / locales ne sont pas susceptibles d'être réutilisées ailleurs dans le corps du programme. Aussi bien le code de la fonction que ces variables disparaissent aussitôt l'exécution de la fonction quittée.
Si la fonction anonyme n'utilise aucune variable, on peut peut-être utiliser un code inline, mais c'est fort possible que la fonction inline laisse des garbages après sa traversée (exécution).
maListeDElements[i] = function(pfa) {
maFonction(i,pfa);
}(10);