--- 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 ---
{{JSRef}}

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 {{jsxref("Set")}} son:

Properties

WeakSet.length
El valor de la propiedad length  es 0.
{{jsxref("WeakSet.prototype")}}
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 {{jsxref("WeakSet.prototype")}}.

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
{{SpecName('ES2015', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ES2015')}} Initial definition.
{{SpecName('ESDraft', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ESDraft')}}  

Compatibilidad de navegadores

{{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

Tambien ver