--- title: WeakSet slug: Web/JavaScript/Reference/Global_Objects/WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet ---
{{JSRef}}
O objeto WeakSet pertmite que você armazene objetos mantidos “fracamente” na coleção.
 

Syntaxe

 new WeakSet([iterable]);

Parâmetros

iterable
Se um objeto interagível é passado, todos os seus elementos serão adicionados ao novo WeakSet.

Descrição

Objetos WeakSet são coleções de objetos. Um objeto no WeakSet pode ocorrer uma vez; é único na coleção do WeakSet.

As principais diferenças para o objeto {{jsxref("Set")}} são:

Propriedades

WeakSet.length
O valor da propriedade de  comprimento é 0.
{{jsxref("WeakSet.prototype")}}
Representa o protóripo para o construtos Set. Permite a adição de propriedades para todos os objetos do WeakSet.

Instâncias WeakSet

Todas as instâncias do WeakSet herdam do {{jsxref("WeakSet.prototype")}}.

Propriedades

{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Properties')}}

Métodos

{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Methods')}}

Exemplos

Usando o objeto do WeakSet

var ws = new WeakSet();
var obj = {};
var foo = {};

ws.add(window);
ws.add(obj);

ws.has(window); // true
ws.has(foo);    // false, foo não foi adicionado ao set

ws.delete(window); // remove window do set
ws.has(window);    // false, window foi removido

Especificações

Especificação Status Comentário
{{SpecName('ES6', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ES6')}} Definição inicial
{{SpecName('ESDraft', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ESDraft')}}  

Compatilidade de Browser

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(36)}} {{ CompatGeckoDesktop(34) }} {{CompatNo}} {{ CompatOpera(23) }} 9
new WeakSet(iterable) 38 {{ CompatGeckoDesktop(34) }} {{CompatNo}} 25 9
Constructor argument: new WeakSet(null) {{CompatVersionUnknown}} {{CompatGeckoDesktop("37")}} {{CompatUnknown}} {{CompatUnknown}} 9
Monkey-patched add() in Constructor {{CompatVersionUnknown}} {{CompatGeckoDesktop("37")}} {{CompatUnknown}} {{CompatUnknown}} 9
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{ CompatGeckoMobile(34) }} {{CompatNo}} {{CompatNo}} 9
new WeakMap(iterable) {{CompatNo}} {{ CompatGeckoMobile(34) }} {{CompatNo}} {{CompatNo}} 9
Constructor argument: new WeakSet(null) {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatUnknown}} 9
Monkey-patched add() in Constructor {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatUnknown}} 9

Veja também