@ssumatokhin

Как надоело писать одно и тоже. Как сократить вызов?

Друзья, может кто нибудь подскажет, как можно оптимизировать вот такую кострукцию
[].forEach.call(nodes.ellipsis, el => el.addEventListener('click', showHide));

Как можно оптимизировать такой вызов, что бы не писать постаянно эту конструкцию
[].forEach.call();
А сделать, что то на вроде jquery с методом .on() ?

Я знаю что в ES6 появился замечательный метод for of и можно сделать так

for (let el of nodes.ellipsis) el.addEventListener('click', showHide);


Но пока что стемновато им пользоваться, не смотря на babel, в некоторых браузерах он продолжает не работать.
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
@Aves
const each = Function.prototype.call.bind(Array.prototype.forEach);

each(nodes.ellipsis, el => el.addEventListener('click', showHide));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AMar4enko
@AMar4enko
nodes.ellipsis.forEach(el => el.addEventListener('click', showHide)) ?
Ответ написан
Rou1997
@Rou1997
Простите, это что, шутка такая, как будто вам только это надоело писать, а того что вы и без таких мелочей пишете раз в 5 больше кода, вы просто не замечаете и никак оптимизировать не намерены?
[].forEach.call(nodes.ellipsis
Ну, точно шутка! Может, вы еще и вот так пишете?
Window.prototype.alert.call(window, 'Hello world');


А сделать, что то на вроде jquery с методом .on() ?

jQuery - это библиотека, следовательно, если стоит задача написать навроде jQuery, но не использовать jQuery, то следует написать свою библиотеку, очень сложная логика, правда?

Или вы принципиально хотите жить на всем готовом, чтобы другие все для вас сделали, те кто занимается Babel, ES6, а вы просто пользовались тем, что вам дают, с максимальным комфортом чтобы ничего не надоедало, а зарплату получали как будто вы сами много стоите?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект