--- title: WeakSet slug: Web/JavaScript/Reference/Global_Objects/WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet original_slug: Web/JavaScript/Referencia/Objetos_globales/WeakSet ---
El objeto WeakSet te deja almacenar y mantener objectos debilmente en una colección.
new WeakSet([iterable]);
WeakSet. null es tratado como undefined.
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 {{jsxref("Set")}} son:
Sets, WeakSets son solamente colecciones de objetos y no contienen valores arbitrarios de cualquier otro tipo.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 el WeakSet, 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. Los WeakSets no son enumerables.WeakSet.lengthlength es 0.Set . Permite la adición de propiedades a todos los objetos WeakSetWeakSet instancesTodas las instancias a WeakSet son heredadas de {{jsxref("WeakSet.prototype")}}.
{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Properties')}}
{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Methods')}}
WeakSet 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
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('ES2015', '#sec-weakset-objects', 'WeakSet')}} | {{Spec2('ES2015')}} | Initial definition. |
| {{SpecName('ESDraft', '#sec-weakset-objects', 'WeakSet')}} | {{Spec2('ESDraft')}} |
{{CompatibilityTable}}
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | {{CompatChrome(36)}} | 12 | {{ CompatGeckoDesktop(34) }} | {{CompatNo}} | {{ CompatOpera(23) }} | {{CompatSafari(9)}} |
new WeakSet(iterable) |
38 | 12 | {{ CompatGeckoDesktop(34) }} | {{CompatNo}} | 25 | {{CompatSafari(9)}} |
Constructor argument: new WeakSet(null) |
{{CompatVersionUnknown}} | 12 | {{CompatGeckoDesktop("37")}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatSafari(9)}} |
Monkey-patched add() in Constructor |
{{CompatVersionUnknown}} | 12 | {{CompatGeckoDesktop("37")}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatSafari(9)}} |
| Obsolete clear() method removed | {{CompatChrome(43)}} | 12 | {{CompatGeckoDesktop(46)}} | {{CompatNo}} | {{CompatOpera(30)}} | {{CompatSafari(9)}} |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{CompatNo}} | {{CompatVersionUnknown}} | {{ CompatGeckoMobile(34) }} | {{CompatNo}} | {{CompatNo}} | 9 |
new WeakMap(iterable) |
{{CompatNo}} | {{CompatVersionUnknown}} | {{ CompatGeckoMobile(34) }} | {{CompatNo}} | {{CompatNo}} | 9 |
Constructor argument: new WeakSet(null) |
{{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatUnknown}} | 9 |
Monkey-patched add() in Constructor |
{{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatUnknown}} | 9 |
| Obsolete clear() method removed | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | 9 |