Перенести методы в прототип оказалось просто:
Шаблон:
function $(selector){ return new Q(document.querySelectorAll(selector)); }
class Q {
constructor(selector){ this.selector = selector; }
toggle(event, newSelect){
for(var i = 0; i < this.selector.length; i++){
this.selector[i].addEventListener(event, function(){
this.classList.toggle(newSelect);
});
}
return this;
}
}
Как использовать:
$('#wrapper .class').toggle('click', 'class-active');
А вот избавиться от циклов пока не получается.
Как думаете вообще, можно ли такой подход уже использовать где-нибудь на личном проекте? Или тут еще есть серьезные дефекты?