JavaScript WeakMap.delete() — відв'язати дані від об'єкта


Метод delete() видаляє запис для цього об'єкта й повертає true, якщо запис був.

автор: NagarD

Загальний опис

Виникає розумне питання: навіщо він узагалі, якщо збирач сміття прибирає все сам?

Потрібен тоді, коли об'єкт живий, а прив'язані дані вже ні: віджет знищили, але сам елемент лишається на сторінці. Автоматичне прибирання тут не спрацює — на елемент усе ще посилається DOM.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
delete 36+ 6+ 8+ 23+ 12+ 11+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
delete 36+ yes yes 8+

Приклади

+ запропонувати свій приклад у пісочниці

Знищення віджета: елемент лишається, стан прибираємо.

const state = new WeakMap();

function destroy(element) {
    element.removeEventListener('click', onClick);

    // елемент лишається на сторінці — стан прибираємо явно
    state.delete(element);
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід