Ada dua notasi yang berbeda untuk mengakses properti objek
- Notasi dot : myObj.prop1
- Notasi braket : myObj ["prop1"]
Notasi dot cepat dan mudah tetapi Anda harus menggunakan nama properti yang sebenarnya secara eksplisit. Tidak ada substitusi, variabel, dll.
Notasi braket terbuka berakhir. Ini menggunakan string tetapi Anda dapat menghasilkan string menggunakan kode js hukum. Anda dapat menentukan string sebagai literal (meskipun dalam kasus ini notasi titik akan lebih mudah dibaca) atau menggunakan variabel atau menghitung dengan cara tertentu.
Jadi, ini semua mengatur properti myObj bernama prop1 ke nilai Halo :
// 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";
Perangkap:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : Jika Anda ingin menghitung atau merujuk kunci, Anda harus menggunakan notasi braket . Jika Anda menggunakan kunci secara eksplisit, maka gunakan notasi titik untuk kode yang jelas sederhana.
Catatan: ada beberapa jawaban lain yang baik dan benar, tetapi saya pribadi menemukan mereka agak singkat berasal dari keakraban dengan JS on-the-fly quirkiness. Ini mungkin bermanfaat bagi sebagian orang.