@hatrid
Учусь web программированию

Зачем ставить скобки после функции в атрибуте обработчика событий?

Когда вы "вешаете" обработчик событий через addEventListener, вторым аргументом вы указываете функцию, которая должна будет выполнится, когда пользователей будет как-либо взаимодействовать с элементом, причём функция указывается без скобок:
document.querySelector('div').addEventListener('click', func);
, что вполне логично, ведь нам важен не код функции, а не её результат.
Однако, если добавить обработчик событий через соответствующий определённому событию html атрибут, то после функции надо ставить скобки: <div onclick="func()"></div>. Почему в этом случае скобки надо ставить, а в первом - нет?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
@DanKud
Потому что внутри onclick добавляется код, который должен выполниться, а не передается функция.
Эта запись будет аналогична такой:
document.querySelector('div').addEventListener('click', () => {
    func();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы