Поиск…


Синтаксис

  • новый 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow