Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
* Some parts of this feature may have varying levels of support.
O objeto WeakMap é uma coleção de pares key/value na qual as chaves são fracamente referenciadas. As chaves devem ser objetos, e os valores podem ser de tipos arbitrários.
Você pode descobrir mais sobre WeakMaps na seção Objeto WeakMap.
Iterable é um Array ou outro objeto iterável cujos elementos são pares key-value (Arrays de dois elementos). Cada par key-value será adicionados ao novo WeakMap. null é tratado como undefined.
Um programador JavaScript experiente vai notar que esta API pode ser implementada em JavaScript com dois arrays (um para chaves, um para valores) compartilhado pelos 4 métodos da API. Tal implementação teria duas principais incoveniências. A primeira é uma busca O(n) (n sendo o número de chaves no map). A segunda é o problema de memory leak. Com maps escritos manualmente, o array de chaves guardaria referências para objetos chave, prevenindo-os de serem coletados pelo Garbage Collector. Nos WeakMaps nativos, referências aos objetos chave são segurados de modo "fraco", o que significa que eles não previnem a coleção pelo GC no caso de não haver nenhuma outra referência ao objeto.
Por conta das referências serem fracas, chaves de WeakMap não são enumeráveis (i.e. não existe um método que dá a você uma lista de chaves). Se existisse tal método, a lista dependeria no estado da coleção do GC, introduzindo não-determinismo. Se você quiser ter uma lista de chaves, deve usar um Map.
Cria um novo objeto WeakMap.
Remove qualquer valor associado à chave(key). WeakMap.prototype.has(key) retornará false depois.
WeakMap.prototype.get(key)Retorna o valor associado à chave(key). Ou undefined se não houver.
WeakMap.prototype.has(key)Retorna um boolean afirmando se um valor foi associado à chave(key) no objeto WeakMap ou não.
WeakMap.prototype.set(key, value)Define o valor(value) da chave(key) no objeto WeakMap. Retorna o objeto WeakMap.
| ECMAScript® 2027 Language Specification # sec-weakmap-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 17 de dez. de 2024 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.