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

Đối tượng WeakMap trong JavaScript.


Đối tượng WeakMap có cặp khóa-giá trị là các phần tử trong đó khóa phải là một đối tượng và giá trị có thể là bất kỳ giá trị hoặc đối tượng nguyên thủy nào. Các đối tượng được sử dụng làm khóa trong WeakMap sẽ được thu thập rác nếu chúng không có bất kỳ tham chiếu nào đến chúng.

Sau đây là mã cho đối tượng WeakMap trong JavaScript -

Ví dụ

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 18px;
      font-weight: 500;
      color: rebeccapurple;
   }
</style>
</head>
<body>
<h1>WeakMap object in JavaScript</h1>
<div class="result"></div>
<button class="Btn">Show WeakMap</button>
<h3>Click on the above button to create and display a WeakMap object</h3>
<button class="Btn">REMOVE</button>
<h3>Click on the above button to remove reference of the WeakMap key</h3>
<script>
   let resultEle = document.querySelector(".result");
   let btnEle = document.querySelectorAll(".Btn");
   let personObj = {
      name: "Rohan Sharma",
      age: 22,
      class: 9,
   };
   let WeakMap1 = new WeakMap();
   WeakMap1.set(personObj, "Rohan Object");
   btnEle[0].addEventListener("click", () => {
      resultEle.innerHTML = "personObj : " + WeakMap1.get(personObj) + "<br>";
   });
   btnEle[1].addEventListener("click", () => {
      personObj = null;
      resultEle.innerHTML += "personObj : " + WeakMap1.get(personObj) + "<br>";
      resultEle.innerHTML += " personObj is now removed from memory";
   });
</script>
</body>
</html>

Đầu ra

Đoạn mã trên sẽ tạo ra kết quả sau -

Đối tượng WeakMap trong JavaScript.

Khi nhấp vào nút 'Show WeakMap' -

Đối tượng WeakMap trong JavaScript.

Khi nhấp vào nút 'XÓA' -

Đối tượng WeakMap trong JavaScript.