Для доступа к свойствам объекта есть две разные нотации
- Точка Обозначения: myObj.prop1
- Кронштейн Обозначение: myObj ["prop1"]
Точечная запись быстра и проста, но вы должны явно использовать фактическое имя свойства. Без подстановки, переменных и т. Д.
Обозначение в скобках является открытым. Он использует строку, но вы можете создать строку, используя любой допустимый код js. Вы можете указать строку как литерал (хотя в этом случае точечная запись будет читаться легче), либо использовать переменную, либо каким-либо образом вычислять.
Итак, все они устанавливают свойство myObj с именем prop1 на значение 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";
Ловушки:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : если вы хотите вычислить или ссылаться на ключ, вы должны использовать скобочное обозначение . Если вы используете ключ явно, тогда используйте точечную запись для простого простого кода.
Примечание: есть и другие хорошие и правильные ответы, но я лично нашел их несколько краткими из-за слабого знакомства с причудливостью JS на лету. Это может быть полезно для некоторых людей.