JavaScript WeakMap.has() — чи є дані для об'єкта
Метод has() перевіряє, чи є в WeakMap запис для цього об'єкта.
Загальний опис
Типове застосування — захист від подвійної ініціалізації: перед тим як навісити обробники на елемент, перевіряємо, чи не зробили це вже.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| has | 36+ | 6+ | 8+ | 23+ | 12+ | 11+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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')); // проігнорується
Коментарі
Коментарів ще немає — будьте першим!