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 Set
são:
- Em contraste ao
Sets
,WeakSets
são coleções apenas de objetos e não de valores arbitrários de qualquer tipo. - O
WeakSet
é fraco. Referências aos objetos nas coleções são mantidas "fracamente". Se não há outra referência para um objeto mantido naWeakSet
, eles pode ser coletados pelo gerenciamento de memória (garbage collection).
Propriedades
WeakSet.length
- O valor da propriedade de comprimento é 0.
WeakSet.prototype
- Representa o protóripo para o construtos
Set
. Permite a adição de propriedades para todos os objetos doWeakSet
.
Instâncias WeakSet
Todas as instâncias do WeakSet
herdam do WeakSet.prototype
.
Propriedades
WeakSet.prototype.constructor
- Returns the function that created an instance's prototype. This is the
WeakSet
function by default.
Métodos
WeakSet.prototype.add(value)
- Appends a new object with the given value to the
WeakSet
object. WeakSet.prototype.delete(value)
- Removes the element associated to the
value
.WeakSet.prototype.has(value)
will returnfalse
afterwards. WeakSet.prototype.has(value)
- Returns a boolean asserting whether an element is present with the given value in the
WeakSet
object or not. WeakSet.prototype.clear()
Removes all elements from theWeakSet
object.
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 |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'WeakSet' in that specification. |
Padrão | Definição inicial |
ECMAScript Latest Draft (ECMA-262) The definition of 'WeakSet' in that specification. |
Rascunho |
Compatilidade de Browser
Estamos convertendo nossos dados de compatibilidade para o formato JSON.
Esta tabela de compatibilidade ainda usa o formato antigo,
pois ainda não convertemos os dados que ela contém.
Descubra como você pode ajudar!
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 36 | 34 (34) | Não suportado | 23 | 9 |
new WeakSet(iterable) |
38 | 34 (34) | Não suportado | 25 | 9 |
Constructor argument: new WeakSet(null) |
(Yes) | 37 (37) | ? | ? | 9 |
Monkey-patched add() in Constructor |
(Yes) | 37 (37) | ? | ? | 9 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | Não suportado | 34.0 (34) | Não suportado | Não suportado | 9 |
new WeakMap(iterable) |
Não suportado | 34.0 (34) | Não suportado | Não suportado | 9 |
Constructor argument: new WeakSet(null) |
? | (Yes) | ? | ? | 9 |
Monkey-patched add() in Constructor |
? | (Yes) | ? | ? | 9 |