El constructor WeakMap() produce objetos WeakMap que son una array de pares clave/valor en la que se hace una referencia débil a la clave. Las claves deben ser objetos y los valores pueden ser arbitrarios. La diferencia entre Map y WeakMap es que las claves deben ser objetos y solo tienen una referencia débil. Esto significa que si no hay otras referencias sólidas a la clave, el recolector de elementos no utilizados puede eliminar el elemento en WeakMap.
Sintaxis:
new WeakMap( iterable )
Parámetros: Acepta un parámetro opcional que puede ser cualquier objeto iterable. Un iterable es un objeto similar a una array con pares clave-valor en los elementos. El WeakMap creado incluirá cada par clave-valor. El nulo se considera indefinido.
Los siguientes ejemplos ilustran el constructor WeakmMap:
Ejemplo: el método get() se usa para recuperar un valor asociado con la clave. Si no hay ningún valor asociado con la clave, devuelve indefinido.
Javascript
<script> const o1 = {}, o2 = {}; const wp = new WeakMap([[o2, 17]]); console.log(wp.get(o2)); console.log(wp.get(o1)); </script>
Producción:
17 undefined
Ejemplo: El método set() se usa para asignar un valor a la clave. Devuelve el objeto WeakMap, que le permite hacer llamadas chain.set().
Javascript
<script> const o1 = {}, o2 = {}; const wp = new WeakMap(); wp.set(o1, 100).set(o2, 200); console.log(wp.get(o1)); console.log(wp.get(o2)); </script>
Producción:
100 200
Ejemplo: El método has() se usa para determinar si un elemento con una clave dada sale en un WeakMap. Devuelve verdadero si sale, de lo contrario, devuelve falso.
Javascript
<script> const o1 = {}, o2 = {}; const wp = new WeakMap([[o2, 17]]); console.log(wp.has(o2)); console.log(wp.has(o1)); </script>
Producción:
true false
Ejemplo: El método delete() se usa para eliminar un elemento con una clave específica. Devuelve verdadero si el elemento existió y se eliminó; de lo contrario, devuelve falso.
Javascript
<script> const o1 = {}, o2 = {}; const wp = new WeakMap([[o1, 77]]); console.log(wp.delete(o2)); console.log(wp.delete(o1)); </script>
Producción:
false true
Publicación traducida automáticamente
Artículo escrito por priyavermaa1198 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA