¿Cómo entender WeakMap en JavaScript?

El objeto WeakMap almacena pares clave/valor. Las claves deben ser objetos, y también el valor puede ser cualquier cosa. En JavaScript, una API de mapas puede diseñarse con 2 arrays, una para claves y otra para valores que comparten las cuatro funciones de la API. Establecer partes en este mapa implicaría al mismo tiempo insertar una clave y un valor en la parte superior de cada una de estas arrays. Como resultado, los índices de clave y valor corresponderían a cada array. 

Para obtener valores del mapa, ingeine todas las claves hasta encontrar una coincidencia, luego use el índice de esa coincidencia para extraer el elemento asociado de la array de valores. La excelencia entre el mapa y las claves es que las claves deben ser objetos y solo están referenciadas por debile. Esto sugiere que si no hay referencias sólidas adicionales a la clave, el recolector de elementos no utilizados puede eliminar la parte en WeakMap.

Sintaxis:

new WeakMap([iterable])

Parámetro: WeakMap Object() acepta un argumento que será cualquier objeto iterable. Por ejemplo, una array que contiene pares clave/valor como arrays de dos elementos.

Ejemplo 1: Obtención de un valor relacionado con la clave: utilice la función .get() para recuperar un valor relacionado con la clave. Si no hay ningún valor conectado con la clave, devuelve indefinido.

Javascript

<script>
    const obj1 = {},
        obj2 = {};
  
    const weakmap = new WeakMap([[obj1, 100]]);
  
    // Printing values
    console.log(weakmap.get(obj1)); // 100
    console.log(weakmap.get(obj2)); // undedfined
</script>

Producción:

Ejemplo 2: poner un valor en la clave: utilice la función .set() para asignar un valor a la clave. Devuelve el objeto WeakMap, que le permite enstringr comandos set().

Javascript

<script>
    const obj1 = {};
  
    const weakmap = new WeakMap();
    weakmap.set(obj1, "gfg");
  
    // Printing value
    console.log(weakmap.get(obj1));
</script>

Producción:

Ejemplo 3: Validar si hay un elemento con la clave: use la función .has() para visualizar si un elemento con una clave exacta sale en un WeakMap. Si se presenta, devuelve verdadero; de lo contrario, devuelve falso.

Javascript

<script>
    const obj1 = {},
        obj2 = {};
  
    const weakmap = new WeakMap([[obj1, "gfg"]]);
  
    // Printing values
    console.log(weakmap.has(obj1)); // true
    console.log(weakmap.has(obj2)); // false
</script>

Producción:

Ejemplo 4: usar la clave para eliminar un elemento : para eliminar un elemento con una clave exacta, use el método .delete() . Devuelve verdadero si el componente existía y se eliminó; de lo contrario, devuelve falso.

Javascript

<script>
    const obj1 = {};
  
    const weakmap = new WeakMap([[obj1, "gfg"]]);
  
    // Printing values
    console.log(weakmap.delete(obj1)); // true
    console.log(weakmap.has(obj1)); // false
</script>

Producción:

Publicación traducida automáticamente

Artículo escrito por priyavermaa1198 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *