JavaScript 中 “weakMap.has()” 方法的用途?
鍵值對使用 JavaScript WeakMap 物件儲存。WeakMap 物件與 Map 物件的不同之處在於,此類物件應被弱引用,並且“物件”應作為鍵儲存在 WeakMap 物件中。相比之下,您可以向 Map 物件新增簡單的值,如字串、布林值、符號和數字。
WeakMap 物件是鬆散儲存的,因此,如果對特定鍵的引用被刪除或物件被刪除,則垃圾回收將在驗證該值是否對映到相關物件後刪除 WeakMap 元素。
JavaScript 內建函式 weakMap.has() 用於返回一個布林值,指示 weakmap 物件中是否存在具有此特定鍵的元素。
語法
以下是 has() 方法的語法
weakMap.has(key)
引數
key − 必需。元素的鍵,用於檢查 WeakMap 物件中是否存在。
返回值
布林值
如果給定的鍵與 WeakMap 物件中的元素匹配,則該函式返回 true;否則,它返回 false。
示例 1
這是一個使用 weakMap.has() 方法的簡單示例。
<!DOCTYPE html> <html> <title>Use of 'weakMap.has()' method in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body style="text-align:center"> <script> function myFunc() { const myWeakMap = new WeakMap(); const key = {}; myWeakMap.set(key, 'tutorialspoint'); document.write(myWeakMap.has(key)); } myFunc(); </script> </body> </html>
示例 2
讓我們看一個 JavaScript 示例,以瞭解此類函式是如何工作的 -
<!DOCTYPE html> <html> <title>Use of 'weakMap.has()' method in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body style="text-align:center"> <script> const myWeakmap = new WeakMap(); const myKey = {}; myWeakmap.set(myKey, 'tutorialspoint'); document.write(myWeakmap.has(myKey)); </script> </body> </html>
示例 3
在此示例中,讓我們瞭解一下,如果 weakMap 物件的鍵“key1”最終未設定,則在這種情況下輸出為 false。
<!DOCTYPE html> <html> <title>Use of 'weakMap.has()' method in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body style="text-align:center"> <script> // written to Create a WeakMap() object const myWeakMap = new WeakMap(); // written to Create a key "myKey" const myKey = {}; // written to test if the key is present // in the weakMap() object or not document.write(myWeakMap.has(myKey)); </script> </body> </html>
示例 4
在此示例中,讓我們瞭解如何使用 delete() 方法刪除或移除 JavaScript WeakMap 物件的元素。您想要從“weakMapObject”中移除的鍵將作為輸入傳遞給 delete() 方法。如果成功刪除了提供的鍵,則 delete() 方法返回“true”;否則,如果在 weakMapObject 中找不到定義的鍵,則返回“false”。
在下面的示例中,使用 JavaScript 的“delete()”方法刪除了“weakmap”物件中的“myObject”。但是首先,讓我們建立以下物件
為了確認“myObject”在刪除前後是否仍然存在於 weakmap 中,我們還將使用 WeakMap 物件的“has()”方法。
<!DOCTYPE html> <html> <title>Use of 'weakMap.has()' method in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body style="text-align:center"> <script> let myWeakMap = new WeakMap(); let myObject = {student: "Steve Smith"}; myWeakMap.set(myObject, 'Welcome to tutorialspoint'); document.write(myWeakMap.has(myObject) +'<br>'); myWeakMap.delete(myObject); document.write(myWeakMap.has(myObject)); </script> </body> </html>
上面看到的輸出表明我們成功地從“weakmap”物件中刪除了“myObject”。由於“myObject”當時仍然存在於 weakmap 物件中,因此第一個 has() 函式返回“true”。在對 JavaScript Weakset 物件使用 delete() 函式後,myObject 從 weakmap 物件中刪除,第二個 has() 方法返回“false”。
簡而言之
要使用弱安全性記錄鍵值對,請使用 JavaScript WeakMap 物件。與 Map 不同,WeakMap 物件不能儲存字串、符號、布林值和數字等基本值。WeakMap 物件可用於儲存 DOM 元素的瀏覽器元資料或在類中構建私有變數。本文透過適當的示例闡明瞭 JavaScript WeakMap 物件。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP