Hay dos anotaciones diferentes para acceder a las propiedades de los objetos.
- Dot notación: myObj.prop1
- Notación de soporte : myObj ["prop1"]
La notación de puntos es rápida y fácil, pero debe usar el nombre de propiedad real explícitamente. Sin sustitución, variables, etc.
La notación de corchetes es abierta. Utiliza una cadena pero puede producir la cadena usando cualquier código js legal. Puede especificar la cadena como literal (aunque en este caso la notación de punto se leería más fácilmente) o usar una variable o calcular de alguna manera.
Por lo tanto, todos éstos establecen el myObj propiedad denominada prop1 al valor Hola :
// quick easy-on-the-eye dot notation
myObj.prop1 = "Hello";
// brackets+literal
myObj["prop1"] = "Hello";
// using a variable
var x = "prop1";
myObj[x] = "Hello";
// calculate the accessor string in some weird way
var numList = [0,1,2];
myObj[ "prop" + numList[1] ] = "Hello";
Trampas:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : si desea calcular o hacer referencia a la clave, debe usar la notación de corchetes . Si está utilizando la clave explícitamente, utilice la notación de puntos para un código claro simple.
Nota: hay algunas otras respuestas buenas y correctas, pero personalmente las encontré un poco breves debido a una baja familiaridad con la peculiaridad de JS sobre la marcha. Esto puede ser útil para algunas personas.