Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Избежать дублирование кода. Объеденить условия. (https://javascript.ru/forum/misc/84550-izbezhat-dublirovanie-koda-obedenit-usloviya.html)

Evgeniya S 12.10.2022 17:51

Избежать дублирование кода. Объеденить условия.
 
Я прям новичок, в этой сфере и прошу помощи у ассов. Необходимо убрать дублирование кода и объединить условия. Как лучше это сделать и какая польза от этого?:help:

setEventListeners() {
this._popupItem.addEventListener('mousedown', (evt) => {
if (evt.target.classList.contains('popup__opened')) {
this.close();
} else if (evt.target.classList.contains('popup__button-close')) {
this.close();
}
})
}

Aetae 12.10.2022 19:13

setEventListeners() {
  this._popupItem.addEventListener('mousedown', (evt) => {
    const { classList } = evt.target;
    if (classList.contains('popup__opened') || classList.contains('popup__button-close')) {
      this.close();
    }
  })
}

Польза - не писать одно и то же.

Ещё так можно, но обычно это на случай если проверок одинаковых больше двух:
setEventListeners() {
  this._popupItem.addEventListener('mousedown', (evt) => {
    if (['popup__opened', 'popup__button-close'].some(name => evt.target.classList.contains(name)) {
      this.close();
    }
  })
}

Evgeniya S 13.10.2022 01:49

:thanks:


Часовой пояс GMT +3, время: 14:52.