Thuộc tính riêng tư trong OOP trong JavaScript
Các thuộc tính của đối tượng có thể đọc và ghi từ bên ngoài được gọi là công khai. Ngoài ra còn có các thuộc tính riêng tư, chỉ có thể truy cập được từ bên trong lớp.
Tên của thuộc tính riêng tư cần
bắt đầu bằng ký tự #.
Ngoài ra, các thuộc tính như vậy bắt buộc phải
được khai báo ở đầu mã lớp.
Hãy làm điều đó:
class User {
#name;
}
Bây giờ hãy ghi dữ liệu vào thuộc tính của chúng ta. Điều này có thể được thực hiện, ví dụ, trong hàm tạo lớp:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Bây giờ hãy tạo một phương thức để trả về giá trị thuộc tính của chúng ta:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Hãy tạo một đối tượng của lớp, truyền tên người dùng làm tham số:
let user = new User('john');
Việc cố gắng truy cập trực tiếp vào thuộc tính của chúng ta bên ngoài lớp sẽ dẫn đến lỗi:
console.log(user.#name); // lỗi
Còn việc gọi phương thức của chúng ta sẽ cho phép đọc thuộc tính này:
console.log(user.show()); // sẽ in ra 'john'
Trong lớp Employee, hãy tạo
ba thuộc tính riêng tư: tên, lương
và tuổi.
Truyền giá trị của các thuộc tính này làm tham số cho hàm tạo.
Tạo một phương thức để in ra dữ liệu của nhân viên.