Istnieją dwie różne notacje umożliwiające dostęp do właściwości obiektu
- Dot notacja: myObj.prop1
- Uchwyt oznaczenia: myObj [ "prop1"]
Notacja kropka jest szybka i łatwa, ale musi korzystać z rzeczywistą nazwę właściwości wiążące. Bez podstawienia, zmiennych itp.
Notacja w nawiasach jest otwarta. Używa ciągu, ale można go utworzyć przy użyciu dowolnego legalnego kodu js. Możesz podać ciąg znaków jako dosłowny (chociaż w tym przypadku notacja kropkowa byłaby łatwiejsza do odczytania) lub użyć zmiennej lub obliczyć w jakiś sposób.
Wszystkie te ustawiają właściwość myObj o nazwie prop1 na wartość 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";
Pułapki:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : Jeśli chcesz obliczyć lub odwołać się do klucza, musisz użyć notacji nawiasowej . Jeśli używasz klucza jawnie, użyj notacji kropkowej dla prostego, czystego kodu.
Uwaga: istnieją inne dobre i poprawne odpowiedzi, ale osobiście uważam je za krótkie, wynikające z małej znajomości dziwactwa JS w locie. Może to być przydatne dla niektórych osób.