Il existe deux notations différentes pour accéder aux propriétés d'un objet
-
Point la notation : monObj.prop1
-
Console la notation : myObj["prop1"]
La notation par points est rapide et facile mais vous doit utiliser le nom réel de la propriété de manière explicite. Pas de substitution, de variables, etc.
La notation par parenthèses est ouverte. Elle utilise une chaîne de caractères mais vous pouvez produire cette chaîne en utilisant n'importe quel code js légal. Vous pouvez spécifier la chaîne comme littérale (bien que dans ce cas la notation par points soit plus facile à lire) ou utiliser une variable ou calculer d'une manière ou d'une autre.
Donc, tous ces éléments définissent le monObj propriété nommée prop1 à la valeur Bonjour :
// 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";
Les pièges :
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl;dnr : Si vous souhaitez calculer ou référencer la clé que vous doit utiliser notation entre crochets . Si vous utilisez la clé explicitement, alors utilisez notation par points pour un code simple et clair.
Note : il y a d'autres bonnes et correctes réponses, mais je les ai personnellement trouvées un peu brèves, étant donné ma faible familiarité avec les bizarreries de JS on-the-fly. Cela pourrait être utile à certaines personnes.
0 votes
Voir aussi accès aux propriétés : notation par points ou par parenthèses ? y Accéder dynamiquement à la propriété d'un objet en utilisant une variable
0 votes
Voir aussi Comment créer une propriété d'objet à partir d'une valeur variable en JavaScript ?