Objects như các mảng liên quan
Như giải thích ở học phần trước, hai biểu thức Javascript sau có cùng giá trị:
object.property
object[“property”]
Cú pháp đầu tiên, sử dụng dấu chấm và một cái nhận dạng, là như cú pháp sử dụng để truy cập một trường tĩnh của
một struct hay object trong C hay Java. Cú pháp thứ hai, sử dụng các [ ] và một string, trông như truy cập mảng,
nhưng là một mảng chỉ mục bằng các strings hơn là bởi các số. Loại mảng này được biết đến như mảng liên quan (hay
hash hay map hay dictionary). Javascript objects là các mảng liên quan, và phần này giải thích tại sao cái đó là
quan trọng.
Trong C, C++, Java và strongly typed languages tương tự, một object có thể chỉ có một số cố định các đặc tính,
và các tên của các đặc tính này phải được định nghĩa trước. Vì Javascript là typed languages lỏng lẻo, quy tắc
này không áp dụng: một chương trình có thể tạo bất cứ số đặc tính nào trong bất cứ object nào. Khi bạn sử dụng
toán tử . để truy cập một đặc tính của một object, tuy nhiên, tên của đặc tính được thể hiện như một cái nhận dạng.
Những cái nhận dạng phải được gõ theo nghĩa đen vào chương trình Javascript của bạn; chúng không phải là dạng dữ
liệu, nên chúng không thể được thao tác xử lí bởi chương trình.
Mặt khác, khi bạn truy cập một đặc tính của một object với notation mảng [ ], tên của đặc tính được thể hiện như
là một string. Strings là dạng dữ liệu Javascript, nên chúng có thể được thao tác xử lí và tạo trong khi một
chương trình đang chạy. Nên, ví dụ, bạn có thể viết code sau trong Javascript:
let addr = “”;
for(let i = 0; i < 4; i++) {addr += customer[`address${i}`] + “\n”;
}
Code này đọc và nối các đặc tính address0, address1, address2, và address3 của customer object.