--- 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.length
length
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 |