WeakSet
El objeto WeakSet
te deja almacenar y mantener objectos debilmente en una colección.
Sintaxis
new WeakSet([iterable]);
Parametros
- iterable
- Si un objeto interable es pasado, todos sus elementos se agregarán al nuevo
WeakSet
. null es tratado como undefined.
Descripción
Los objetos WeakSet
son colecciones de objetos. Un objecto en WeakSet
solo puede ser agregado una vez; Esto quiere decir que es unico en la coleccion WeakSet.
Las principales diferencias con el objeto Set
son:
- A diferencia de
Sets
,WeakSets
son solamente colecciones de objetos y no contienen valores arbitrarios de cualquier otro tipo. - El
WeakSet
es débil: Las referencias a objetos en la colección se mantienen débilmente.. Si ya no hay otra referencia a un objeto almacenado en elWeakSet
, ellos pueden ser removidos por el recolector de basura. Esto también significa que no hay ninguna lista de objetos almacenados en la colección. LosWeakSets
no son enumerables.
Properties
WeakSet.length
- El valor de la propiedad
length
es 0. WeakSet.prototype
(en-US)- Representa el prototipo para el constructor
Set
. Permite la adición de propiedades a todos los objetos WeakSet
WeakSet
instances
Todas las instancias a WeakSet
son heredadas de WeakSet.prototype
(en-US).
Propiedades
{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Properties')}}
Métodos
{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Methods')}}
Ejemplos
Usando el objetoWeakSet
var ws = new WeakSet();
var obj = {};
var foo = {};
ws.add(window);
ws.add(obj);
ws.has(window); // true
ws.has(foo); // false, foo no fue agregado al conjunto
ws.delete(window); // elimina window del conjunto
ws.has(window); // false, window fue eliminado
Especificaciónes
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La definición de 'WeakSet' en esta especificación. |
Standard | Initial definition. |
ECMAScript (ECMA-262) La definición de 'WeakSet' en esta especificación. |
Living Standard |
Compatibilidad de navegadores
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help! (en-US)
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 36 | 12 | 34 (34) | Sin soporte | 23 | 9 |
new WeakSet(iterable) |
38 | 12 | 34 (34) | Sin soporte | 25 | 9 |
Constructor argument: new WeakSet(null) |
(Yes) | 12 | 37 (37) | Sin soporte | ? | 9 |
Monkey-patched add() in Constructor |
(Yes) | 12 | 37 (37) | Sin soporte | ? | 9 |
Obsolete clear() method removed | 43 | 12 | 46 (46) | Sin soporte | 30 | 9 |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | Sin soporte | (Yes) | 34.0 (34) | Sin soporte | Sin soporte | 9 |
new WeakMap(iterable) |
Sin soporte | (Yes) | 34.0 (34) | Sin soporte | Sin soporte | 9 |
Constructor argument: new WeakSet(null) |
? | (Yes) | (Yes) | Sin soporte | ? | 9 |
Monkey-patched add() in Constructor |
? | (Yes) | (Yes) | Sin soporte | ? | 9 |
Obsolete clear() method removed | Sin soporte | (Yes) | ? | Sin soporte | ? | 9 |