--- title: WeakSet slug: Web/JavaScript/Reference/Global_Objects/WeakSet tags: - ECMAScript6 - JavaScript - WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet ---
Объект WeakSet
- коллекция, элементами которой могут быть только объекты. Ссылки на эти объекты в WeakSet являются слабыми. Каждый объект может быть добавлен в WeakSet только один раз.
new WeakSet([iterable]);
Null
обрабатывается как undefined
.Объекты WeakSet
представляют собой коллекции объектов. Каждый объект в WeakSet встречается только один раз, что обеспечивает его уникальность в рамках коллекции WeakSet.
Главным отличия от объекта {{jsxref("Set")}}:
WeakSet.length
length
всегда равно 0.Set
. Позволяет добавлять свойства всем объектам типа WeakSet
.Экземпляры WeakSet
Все экземпляры класса WeakSet
унаследованы от {{jsxref("WeakSet.prototype")}}.
{{page('ru/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Properties')}}
{{page('ru/docs/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 не добавлен в WeakSet ws.delete(window); // удаляет window из WeakSet ws.has(window); // false, window был удалён
{{Compat("javascript.builtins.WeakSet")}}