2011-01-05 14 views
5

Al observar esto desde un punto de semántica, hay dos maneras de navegar por objetos en JS, puede usar el operador de punto o trabajar a través de ellos como si fuera una matriz anidada.JS Navegación de objetos: cuándo usar object.sub y object ["sub"]?

¿Cuándo es apropiado usar un operador sobre el otro? ¿Por qué no debería simplemente usar el método con corchetes todo el tiempo (parece más poderoso)? Ambos parecen fáciles de leer, pero el operador punto parece limitado, ya que no se le pueden proporcionar nombres variables de objetos anidados ni trabajar a través de matrices.

Respuesta

5

Las principales razones para el uso []

  1. No se puede acceder a las propiedades con los nombres de palabras clave a través de la notación de puntos (al menos no en < ES5)
  2. Se puede utilizar para tener acceso a propiedades dadas por una cadena

Las razones para el uso .

  1. Siempre utilizando [] hace resaltado de sintaxis, completado de código, etc. bastante inútil
  2. Incluso con inserción automática de las piezas contrarias cierre [' es un infierno mucho más lento que escribir (especialmente en los diseños de teclado no estadounidenses)

I significa, solo imagina escribir Chat['users']['getList']()['sort']()['each'].

Regla de oro:. uso siempre que sea posible, y caer de nuevo a [] cuando no hay otra manera.

Cuestiones relacionadas