Поиск…
Синтаксис
- новый WeakSet ([итерируемый]);
- weakset.add (значение);
- weakset.has (значение);
- weakset.delete (значение);
замечания
Для использования WeakSet см. ECMAScript 6: для чего нужен WeakSet? ,
Создание объекта WeakSet
Объект WeakSet используется для хранения слабо удерживаемых объектов в коллекции. Отличие от Set заключается в том, что вы не можете хранить примитивные значения, например числа или строку. Кроме того, ссылки на объекты в коллекции хранятся слабо, что означает, что, если нет другой ссылки на объект, хранящийся в файле WeakSet, это может быть сбор мусора.
Конструктор WeakSet имеет необязательный параметр, который может быть любым итерируемым объектом (например, массивом). Все его элементы будут добавлены в созданный WeakSet.
const obj1 = {},
obj2 = {};
const weakset = new WeakSet([obj1, obj2]);
Добавление значения
Чтобы добавить значение в WeakSet, используйте метод .add()
. Этот метод является цепным.
const obj1 = {},
obj2 = {};
const weakset = new WeakSet();
weakset.add(obj1).add(obj2);
Проверка наличия значения
Чтобы проверить, выходит ли значение в WeakSet, используйте .has()
.
const obj1 = {},
obj2 = {};
const weakset = new WeakSet([obj1]);
console.log(weakset.has(obj1)); // true
console.log(weakset.has(obj2)); // false
Удаление значения
Чтобы удалить значение из WeakSet, используйте метод .delete()
. Этот метод возвращает true
если значение существует и было удалено, иначе false
.
const obj1 = {},
obj2 = {};
const weakset = new WeakSet([obj1]);
console.log(weakset.delete(obj1)); // true
console.log(weakset.delete(obj2)); // false