Esistono due diverse notazioni per accedere alle proprietà dell'oggetto
- Notazione dot : myObj.prop1
- Staffa notazione: myObj [ "prop1"]
La notazione dei punti è semplice e veloce ma è necessario utilizzare esplicitamente il nome della proprietà attuale. Nessuna sostituzione, variabili, ecc.
La notazione di parentesi è aperta. Usa una stringa ma puoi produrre la stringa usando qualsiasi codice js legale. È possibile specificare la stringa come letterale (anche se in questo caso la notazione con punti sarebbe più semplice) o utilizzare una variabile o calcolare in qualche modo.
Quindi, tutti questi impostano la proprietà myObj denominata prop1 sul valore Hello :
// 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";
insidie:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : se si desidera calcolare o fare riferimento alla chiave, è necessario utilizzare la notazione tra parentesi . Se si utilizza la chiave in modo esplicito, utilizzare la notazione punto per un semplice codice chiaro.
Nota: ci sono altre risposte valide e corrette, ma personalmente le ho trovate un po 'brevi, provenienti da una scarsa familiarità con la stranezza al volo di JS. Questo potrebbe essere utile per alcune persone.