Ce qui ne l'JSLint erreur "corps de un pour dans doit être enveloppé dans une instruction if" signifie pour vous?

J'ai utilisé JSLint sur un fichier JavaScript de la mine. Il a jeté l'erreur:

for( ind in evtListeners ) {

Problème à la ligne 41 de caractère 9: Le corps d'un de doit être
enveloppé dans une instruction if pour filtrer les indésirables
propriétés du prototype.

Qu'est-ce que cela signifie?

  • Par défaut 'dans' itère sur les propriétés héritées ainsi. Habituellement, le corps est enveloppé dans if (evtListeners.hasOwnProperty(ind)) de limiter le traitement seulement propre (non héréditaire) propriétés. Encore, dans certains cas, vous voulez vraiment effectuer une itération sur toutes les propriétés, y compris celles héritées. Dans ce cas, JSLint vous oblige à envelopper le corps de la boucle dans une instruction if pour déterminer les propriétés que vous voulez vraiment. Cela permettra de travailler et de faire JSlint heureux: if (evtListeners[ind] !== undefined)
  • La plupart des réponses sont obsolètes. une mise à jour de la solution peut être trouvé à l'adresse stackoverflow.com/a/10167931/3138375
InformationsquelleAutor jrharshath | 2009-12-26