Computer >> Máy Tính >  >> Lập trình >> Javascript

Tại sao chúng ta cần bản đồ yếu trong Javascript?

Đối tượng WeakMap là tập hợp các cặp khóa / giá trị trong đó các khóa được tham chiếu yếu. Các khóa phải là đối tượng và giá trị có thể là giá trị tùy ý.

Theo wikipedia, Tham chiếu yếu là tham chiếu không bảo vệ đối tượng được tham chiếu khỏi bộ thu gom rác, không giống như tham chiếu mạnh. Một đối tượng chỉ được tham chiếu bằng tham chiếu yếu - nghĩa là "mọi chuỗi tham chiếu đến đối tượng bao gồm ít nhất một tham chiếu yếu dưới dạng liên kết" - được coi là có thể truy cập yếu và có thể được coi là không thể truy cập và vì vậy có thể được thu thập bất kỳ lúc nào.

Một số trường hợp sử dụng có thể gây ra rò rỉ bộ nhớ có thể được giải quyết khi sử dụng bản đồ yếu -

  • Giữ dữ liệu riêng tư về một đối tượng cụ thể và chỉ cấp quyền truy cập vào đối tượng đó cho những người có tham chiếu đến Bản đồ.

  • Giữ dữ liệu về các đối tượng thư viện mà không thay đổi chúng hoặc phát sinh chi phí.

  • Giữ dữ liệu về một tập hợp nhỏ các đối tượng trong đó nhiều đối tượng cùng loại tồn tại để không phát sinh vấn đề với các lớp ẩn mà công cụ JS sử dụng cho các đối tượng cùng loại.

  • Giữ dữ liệu về các đối tượng máy chủ như nút DOM trong trình duyệt.

  • Thêm một khả năng cho một đối tượng từ bên ngoài.