2010-03-15 5 views
4

Je lis le JSlint Options Documentation pour comprendre chacune des options disponibles, et j'en ai rencontré une que je ne comprends pas très bien, et je ne trouve aucune information utile à ce sujet ailleurs.JSLint -Tolerate indice inefficace?

sous - Tolérer subscripting inefficace

vrai si la notation peut être utilisé indice des expressions mieux exprimé en notation point.

Quelqu'un peut-il nous éclairer sur ce que cela signifie?

Merci

Répondre

7

membres des objets JavaScript sont accessibles par points ou notation indice (support carré):

o.foo 
o['foo'] 

... sont la même chose. Carré notation de support est nécessaire pour accéder à des membres dont les noms ne peuvent pas être utilisés dans la notation par points:

o['hello!'] 

ou pour accéder à des membres d'un nom dynamique:

var name= issomething? 'foo' : 'bar'; 
o[name] 

Mais pour de simples o['foo'] vous n'avez pas besoin de ça. Normalement, le formulaire o.foo est plus facile à lire, il est donc préférable de l'utiliser. Certains programmeurs venant d'autres langues peuvent préférer utiliser des crochets pour les objets qui utilisent «comme un mapping» plutôt que «comme un objet», mais c'est tout comme JS. (JSlint prétend que la forme du carré est également "moins efficace", mais si c'est le cas, la différence est minuscule et ne vaut pas vraiment la peine d'être importunée.)

2

Voir here. On dirait que la notation indice est en train de faire:

document.forms['myformname']; 

au lieu de

document.forms.myformname;