2010-10-14 18 views
0

Je reçois quelques erreurs "Don't make functions within a loop." de JSLint, quelqu'un a-t-il des suggestions ordonnées sur la façon de résoudre ce genre de problème?Comment est-ce que je devrais remplacer mes défauts de fonction JSLint-timide vilains dans des boucles?

Peut-être que ma méchanceté est excusable en raison de mes dépendances YAHOO (yd. ci-dessous)? Je peux dire que la seule fois que je l'ai fait ce qui suit:

for(var i=0; i<FLN.revealers.length;i++) 
{ 
    var revEl = FLN.revealers[i] ; 
    var tag = yd.getElementsBy(function(el){ 
       return true; 
      },'script',revEl); 
} 

... est quand je dois effectuer une opération sur une série d'éléments imbriqués dans une série d'éléments, à mon avis, cela semble Naturel. Je n'ai trouvé aucune lenteur etc. dans mon application, juste curieuse parce que JSLint a blessé mes sentiments :)

+2

Très similaire à http://stackoverflow.com/questions/3927054/jslint-error-dont-make-functions-within-a-loop-leads- to-question-about-javasc – epascarello

+0

Merci pour les heads-up, je vais le fermer quand poss. – danjah

Répondre

1

La réponse simple est que dans ce cas la fonction que vous utilisez n'a pas besoin d'être différente pour chaque itération, donc vous pouvez améliorer l'efficacité en utilisant une seule fonction à la place:

var f = function(el) { 
    return true; 
}; 

for(var i=0; i<FLN.revealers.length;i++) 
{ 
    var revEl = FLN.revealers[i] ; 
    var tag = yd.getElementsBy(f, 'script', revEl); 
}