Я боролся с идеей, когда получать / передавать параметры JavaScript функциям, и чтение этой статьи о onchange
обработчиках событий в MDN помогло мне кристаллизовать мой вопрос. Вот код из статьи:
<input type="text" placeholder="Type something here, then click outside of the field." size="50">
<p id="log"></p>
let input = document.querySelector('input');
let log = document.getElementById('log');
input.onchange = handleChange; //<<< Question on this <<<<<<
function handleChange(e) {
log.textContent = `The field's value is
${e.target.value.length} character(s) long.`;
}
Я вижу, что input
имеет обработчик onchange
, который предоставляет данные для функции handleChange()
. В ней даже говорится, что в документах:
Функция получает объект Event в качестве единственного аргумента.
Тем не менее, я изо всех сил пытаюсь понять, как handleChange()
получение объекта Event, когда в скобках нет аргументов?
input.onchange = handleChange; // Where's the parentheses?
Является ли объект Event глобальным, и вот как handleChange()
манипулирует им? Если бы это было так, не могли бы вы опустить аргумент e
при определении функции?