Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ทำไมเราถึงต้องการจุดอ่อนใน Javascript?


ออบเจ็กต์ WeakMap คือชุดของคู่คีย์/ค่าที่มีการอ้างอิงคีย์อย่างคร่าวๆ คีย์ต้องเป็นวัตถุและค่าสามารถเป็นค่าใดก็ได้

ตามวิกิพีเดีย การอ้างอิงที่อ่อนแอคือข้อมูลอ้างอิงที่ไม่ได้ป้องกันวัตถุที่อ้างอิงจากการรวบรวมโดยตัวรวบรวมขยะ ซึ่งแตกต่างจากการอ้างอิงที่แข็งแกร่ง วัตถุที่อ้างอิงโดยการอ้างอิงที่อ่อนแอเท่านั้น - หมายถึง "ทุกสายของการอ้างอิงที่มาถึงวัตถุมีการอ้างอิงที่อ่อนแออย่างน้อยหนึ่งรายการเป็นลิงก์" - ถือว่าเข้าถึงได้น้อยและสามารถถูกมองว่าไม่สามารถเข้าถึงได้และสามารถรวบรวมได้ตลอดเวลา /P>

กรณีการใช้งานบางอย่างที่มิฉะนั้นจะทำให้หน่วยความจำรั่ว ซึ่งสามารถแก้ไขได้โดยใช้แผนที่ที่อ่อนแอ -

  • การรักษาข้อมูลส่วนตัวเกี่ยวกับวัตถุเฉพาะและให้สิทธิ์การเข้าถึงแก่ผู้ที่มีการอ้างอิงถึงแผนที่เท่านั้น

  • การเก็บข้อมูลเกี่ยวกับวัตถุห้องสมุดโดยไม่เปลี่ยนแปลงหรือทำให้เกิดค่าใช้จ่าย

  • การเก็บข้อมูลเกี่ยวกับชุดออบเจ็กต์ขนาดเล็กที่มีอ็อบเจ็กต์ประเภทเดียวกันจำนวนมากเพื่อไม่ให้เกิดปัญหากับคลาสที่ซ่อนอยู่ JS เอ็นจิ้นใช้สำหรับอ็อบเจ็กต์ประเภทเดียวกัน

  • เก็บข้อมูลเกี่ยวกับโฮสต์อ็อบเจ็กต์ เช่น โหนด DOM ในเบราว์เซอร์

  • การเพิ่มความสามารถให้กับวัตถุจากภายนอก