Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Dot Notation - Bracket Notation

Estas en el tema de Dot Notation - Bracket Notation en el foro de Javascript en Foros del Web. Hola a todos, Estoy llegando a los objetos y esta parte de las notaciones no la he entendido muy bien, los textos están en inglés ...
  #1 (permalink)  
Antiguo 15/11/2014, 13:16
Avatar de Beatzoo  
Fecha de Ingreso: septiembre-2009
Ubicación: Retire Hill
Mensajes: 27
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Dot Notation - Bracket Notation

Hola a todos,

Estoy llegando a los objetos y esta parte de las notaciones no la he entendido muy bien, los textos están en inglés y me está costando comprenderlo, si alguno de ustedes me pudiera dar unas claves para entender el uso de cada una os estaría muy agradecido.
Lo único que tengo claro es que la notación de punto se usa más, pero la de corchetes se usa para algunos casos puntuales, aunque también puede ser muy útil.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 15/11/2014, 15:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Dot Notation - Bracket Notation

La principal diferencia entre el uso de una y otra notación radica en que, para utilizar la notación por puntos, el nombre del método o propiedad del objeto, debe de tener un formato válido para identificadores, es decir, que sea una cadena alfanumérica, pudiendo contener al signo de dólar y al guión bajo, además de no poder empezar por un número. La notación por corchetes, omite esa restricción.

Más información: Operadores de miembros

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 17/11/2014, 12:09
Avatar de Beatzoo  
Fecha de Ingreso: septiembre-2009
Ubicación: Retire Hill
Mensajes: 27
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Dot Notation - Bracket Notation

Gracias por tu ayuda Alexis, ya tengo un poco más claro el uso de ambas. Pero aún no comprendo el tema de usar valores de variables como propiedades. En el siguiente texto hay dos ejemplos, el primero que no funciona y el segundo que sí. El primero usa notación por puntos para acceder a una propiedad almacenada en una variable y el segundo notación por corchetes. La cosa es que no comprendo muy bien por qué mediante la notación por puntos no puedo conseguir resultado (acompaño con el texto original del autor en inglés).

This feature of bracket notation becomes quite useful when you need to use a property name,
but it is stored in a variable (for example, when a value is sent as an argument to a function).
Since dot notation only allows the use of the bare property name, it cannot use a variable value:


Código Javascript:
Ver original
  1. var car = {
  2. seats: "cloth",
  3. engine: "V-6"
  4. };
  5. var s = "seats";
  6. function show_seat_type(sts) {
  7. window.alert(car.sts); // undefined
  8. }
  9. show_seat_type(s);

Here, rather than using the value of sts, a search for a property named sts within the car object
ensues, which results in a value of undefined being returned when the property is not found.
Using bracket notation, you can get this working:


Código Javascript:
Ver original
  1. var car = {
  2. seats: "cloth",
  3. engine: "V-6"
  4. };
  5. var s = "seats";
  6. function show_seat_type(sts) {
  7. window.alert(car[sts]); // works
  8. }
  9. show_seat_type(s);

This time, the value of the variable sts is used, which is the string “seats”, and “cloth” is
alerted to the viewer.
  #4 (permalink)  
Antiguo 17/11/2014, 12:24
 
Fecha de Ingreso: octubre-2013
Mensajes: 44
Antigüedad: 11 años
Puntos: 5
Respuesta: Dot Notation - Bracket Notation

Es normal que no puedes acceder a él.

Dot notation: car.seats -> "cloth"
Bracket notation: car["seats"] -> "cloth"

Ahora bien, tu a la función le estás pasando una variable de tipo string. De esta forma, cuando llamas al método dentro de la función estás haciendo lo siguiente:

Dot notation: car.sts -> car."seats" -> error
Bracket notation: car[sts] -> car["seats"] -> "cloth"
  #5 (permalink)  
Antiguo 17/11/2014, 13:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Dot Notation - Bracket Notation

Lo que te dice Madh, es correcto. Si leíste la información del enlace que te proporcioné, habrás notado que hay una parte en la que se menciona que muchos usuarios nóveles utilizan la función eval para así hacer válida la lectura de la propiedad, sin embargo, para casos así, es preferible la notación con corchetes. Si deseas utilizar la notación por puntos, deberás indicar las propiedades de manera directa.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: claves
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.