JavaScript WeakMap.has() — чи є дані для об'єкта


Метод has() перевіряє, чи є в WeakMap запис для цього об'єкта.

автор: NagarD

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

Типове застосування — захист від подвійної ініціалізації: перед тим як навісити обробники на елемент, перевіряємо, чи не зробили це вже.

автор: NagarD

Переглядачі

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

Приклади

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

Не ініціалізувати той самий елемент двічі.

HTML

<div class="widget">Віджет 1</div>
<div class="widget">Віджет 2</div>

JS

function onClick() {
    console.log('клік по віджету');
}

const initialized = new WeakMap();

function setup(element) {
    if (initialized.has(element)) {
        console.log('Уже налаштований — пропускаємо');
        return;
    }

    element.addEventListener('click', onClick);
    initialized.set(element, true);
}

document.querySelectorAll('.widget').forEach(setup);
setup(document.querySelector('.widget')); // проігнорується
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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