Thuộc tính riêng JavaScript
Kể từ ES2022, bạn có thể xác định các trường riêng tư cho một lớp bằng cách sử dụng ký hiệu 1 có tiền tố là số nhận dạng. Bạn có thể truy cập các trường riêng tư từ hàm tạo của lớp trong phần khai báo lớp Show Ví dụ: phần sau định nghĩa lớp 2 với trường riêng 3
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Từ ví dụ trên,
Sau đây tạo một thể hiện mới của lớp Circle và tính diện tích của nó
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Bây giờ, 0 là một trường riêng tư, bạn chỉ có thể truy cập nó bên trong lớp Circle. Nói cách khác, trường 0 ẩn bên ngoài lớp CircleCố gắng truy cập trường riêng bên ngoài lớp sẽ tạo ra lỗi cú pháp
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Di sảnGiống như các trường công khai, các trường riêng tư được thêm vào thời điểm xây dựng trong một lớp cơ sở hoặc tại thời điểm mà 5 được gọi trong một lớp con. Nhưng cố gắng truy cập trường Riêng tư từ một lớp con sẽ dẫn đến kết quả là 6. Các trường riêng tư chỉ có thể truy cập được trong lớp kèm theo (lớp nơi chúng được xác định). Ví dụ: phần sau định nghĩa lớp 7 mở rộng lớp 2 1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Nếu bạn cố gắng truy cập trường riêng của 0 trong lớp 7, bạn sẽ nhận được một 6Cú pháp kỳ lạ?Các định nghĩa lớp đã được giới thiệu trong ES6 và dư luận vẫn bình tĩnh. Các trường lớp ES2019 yêu cầu ít mã hơn, hỗ trợ khả năng đọc và cho phép một số khả năng lập trình hướng đối tượng thú vị Việc sử dụng 1 để biểu thị các trường riêng tư đã nhận được một số lời chỉ trích, chủ yếu là vì nó xấu và có cảm giác như bị hackHầu hết các ngôn ngữ triển khai từ khóa 5, do đó, việc cố gắng sử dụng thành viên đó bên ngoài lớp sẽ bị trình biên dịch từ chối. JavaScript được giải thích. Hãy xem xét đoạn mã sauGHI CHÚ. Vanilla Javascript không hỗ trợ từ khóa 5 nhưng hiện tại sẽ không hại gì khi cho rằng từ khóa 5 trong các lớp được hỗ trợ 5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Sau khi khởi tạo lớp của chúng ta( 7), chúng ta đang cố gắng truy cập thuộc tính riêng tư của 8( 9). Điều này sẽ gây ra lỗi thời gian chạy ở dòng cuối cùng, nhưng đó là hậu quả quá lớn nếu chỉ cố gắng đặt một thuộc tính riêng tư. Có thể bạn chưa biết, JavaScript ES5 cho phép sửa đổi thuộc tính trên bất kỳ đối tượng nào. Các lớp Javascript là các đối tượng dưới mui xe. Vì vậy, ném lỗi thời gian chạy khi cố gắng đặt thuộc tính riêng của lớp chúng ta thực sự giống như đặt quy tắc/quy ước của riêng bạn trong ngọn lửa🔥. Mặc dù vô vị đối với mắt, ký hiệu 1 không hợp lệ bên ngoài định nghĩa lớp. Cố gắng truy cập 11 gây ra lỗi cú pháp. _______112 là hợp lý vì trong Javascript, tên thuộc tính có thể bắt đầu bằng dấu gạch dưới hoặc chữ cái. Nhấn nút thích và vui lòng cân nhắc theo dõi tôi trên twitter để cập nhật những gì tôi đang làm trong những ngày này. Theo tôi ở đây trong dev. để theo dõi khi bài viết tiếp theo của tôi xuất hiện. Bình yên✌️ Tài sản riêng tư trong JavaScript là gì?Trong JavaScript, có hai loại trường đối tượng (thuộc tính và phương thức). Công cộng. có thể truy cập từ bất cứ đâu. Chúng bao gồm giao diện bên ngoài. Cho đến bây giờ chúng tôi chỉ sử dụng các thuộc tính và phương thức công khai. Riêng tư. chỉ có thể truy cập từ bên trong lớp .
JavaScript có thuộc tính riêng tư không?Tuy nhiên, hàm tạo không thể ở chế độ riêng tư trong JavaScript . Để ngăn các lớp được xây dựng bên ngoài lớp, bạn phải sử dụng cờ riêng. Các thuộc tính riêng tư được khai báo với # tên (phát âm là "tên băm"), là các mã định danh có tiền tố #.
Làm cách nào để tạo thuộc tính riêng tư trong một lớp JavaScript?Đề xuất trường lớp
. Cú pháp rất đơn giản. thêm dấu # trước tên của thuộc tính và thuộc tính đó sẽ ở chế độ riêng tư . Như bạn có thể thấy, các trường công khai được tạo theo cách tương tự như các trường riêng tư ngoại trừ việc chúng không có thẻ bắt đầu bằng #. |