Property (JavaScript)
Thuộc tính JavaScript là một thành viên của đối tượng liên kết một khóa với một giá trị. Đối tượng JavaScript là một cấu trúc dữ liệu lưu trữ tập hợp các thuộc tính.
Một thuộc tính bao gồm các phần sau:
- Một tên (còn gọi là khóa), có thể là một chuỗi hoặc một symbol.
- Một giá trị, có thể là bất kỳ giá trị JavaScript nào. Thuộc tính có giá trị là hàm cũng có thể được gọi là method.
- Một số thuộc tính mô tả, xác định cách thuộc tính có thể được đọc và ghi. Thuộc tính có thể có các mô tả
configurable,enumerablevàwritable.
Thuộc tính accessor không có "giá trị" thực sự. Giá trị được biểu diễn gián tiếp thông qua một cặp hàm: một hàm (getter) được gọi khi đọc giá trị và một hàm (setter) được gọi khi gán giá trị. Tuy nhiên, thuộc tính accessor hoạt động giống như thuộc tính dữ liệu thông thường bề ngoài, vì các hàm getter và setter được gọi tự động và thường trong suốt đối với mã JavaScript.
Giá trị của thuộc tính (bao gồm getter và setter) và các mô tả của nó được lưu trong một bản ghi dữ liệu gọi là property descriptor. Nhiều phương thức, chẳng hạn như Object.getOwnPropertyDescriptor() và Object.defineProperty(), làm việc với property descriptor.
Bản thân thuật ngữ thuộc tính không tương ứng với bất kỳ giá trị JavaScript nào — đây là một khái niệm trừu tượng. Ví dụ, trong đoạn mã sau:
const obj = {
a: 1,
b() {},
};
Đối tượng obj có hai thuộc tính. Thuộc tính đầu tiên có khóa là "a" và giá trị là 1. Thuộc tính thứ hai có khóa là "b" và giá trị là một hàm (sử dụng cú pháp phương thức). Các liên kết "a" – 1, "b" – function chính là các thuộc tính của đối tượng.
Trong ngữ cảnh của lớp, thuộc tính có thể chia thành thuộc tính thực thể, thuộc sở hữu của từng thực thể, và thuộc tính tĩnh, thuộc sở hữu của lớp và chứa dữ liệu chung cho tất cả các thực thể. Trong ngữ cảnh của kế thừa, thuộc tính cũng có thể chia thành thuộc tính riêng, thuộc sở hữu của chính đối tượng, và thuộc tính kế thừa, thuộc sở hữu của các đối tượng trong chuỗi prototype của đối tượng đó.
Để biết thêm thông tin về việc đọc và ghi thuộc tính, hãy xem làm việc với đối tượng.