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