у меня внутри не очень сложная логика описана
class Card {
initEvents() {// обработка всех кликов}
initSlider() {// инициализация слайдера если есть}
setFavorite() {// отправка ajax запроса на избранное}
openPopup() {// открывает попап с видео }
}
Если бы у Вас был такой функционал, вы бы выбрали создать 20 экземпляров new Card() или один, и внутри проходится по каждой карточке?